попытаться подключить размещенное веб-приложение к локальной базе данных?

Я пытаюсь подключить размещенное веб-приложение к локальной базе данных. Сначала я получал Fatal error: Call to undefined function odbc_connect() ошибка, но после добавления расширения «odbc» я начал получать

Error connecting to the ODBC database: [unixODBC][Driver Manager]Data source name not found, and no default driver specified

Я использовал следующий код в сценарии php для подключения к локальной базе данных с использованием ODBC

$odbc['dsn'] = "SageLine50v19";
$odbc['user'] = "Peac";
$odbc['pass'] = "XXXX";
$mysql['host'] = "localhost";
$mysql['user'] = "root";
$mysql['pass'] = "";
$mysql['dbname'] = "sagetest";
$mysql['idfield'] = "id";// Step 1: Connect to the source ODBC database
if ($debug) echo "Connect to " . $odbc['dsn'] . ' as ' . $odbc['user'] . "\n";
$conn = odbc_connect($odbc['dsn'], $odbc['user'], $odbc['pass']);
if (!$conn) {
die("Error connecting to the ODBC database: " . odbc_errormsg());
}

// loop through each table
$allTables = odbc_tables($conn);
$tablesArray = array();
while (odbc_fetch_row($allTables)) {
if (odbc_result($allTables, "TABLE_TYPE") == "TABLE") {
$tablesArray[] = odbc_result($allTables, "TABLE_NAME");
}
}
//print_r($tablesArray);      // to list all tables

мой ODBC.ini выглядит как ниже

[ODBC 32 bit Data Sources]
t=SQL Server Native Client 10.0 (32 bit)
SageLine50v19=Pervasive ODBC Client Interface (32 bit)

[t]
Driver32=C:\Windows\system32\sqlncli10.dll
[SageLine50v19]
Driver32=C:\Program Files (x86)\Pervasive Software\PSQL\bin\w3odbcci.dll

1

Решение

Ошибка подключения к базе данных ODBC: [unixODBC] [Driver Manager] Data
источник имя не найдено, и не указан драйвер по умолчанию

Проблема:

Это ваше имя источника данных:

[ODBC 32 bit Data Sources]

Но в вашем php вы положили

$odbc['dsn'] = "SageLine50v19";

Решение:

Решите, кого вы меняете:

odbc.ini

[SageLine50v19]

или же PHP

$odbc['dsn'] = "ODBC 32 bit Data Sources";
0

Другие решения

На какой именно платформе?

Учитывая unixODBC я бы ожидал Unix / Linux. Но драйверы .dll указывают на Windows. Который из них?

Если диспетчер драйверов пытается загрузить библиотеку и происходит сбой, он выдаст «Имя источника данных не найдено, и драйвер по умолчанию не указан» (это то, что спецификация настаивает на этом), если вы пытаетесь использовать драйверы Windows в Unix, тогда я ожидаю, что он не сможет загрузиться.

0