Подключение к локальной базе данных с удаленного веб-сервера

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

Fatal error: Call to undefined function odbc_connect()
in -/-/-/7001238/web/s/sage2.php on line 15"

Любая помощь о том, как решить проблему.

Вот код, который я использовал для подключения.

 $odbc['dsn'] = "Sage50";
$odbc['user'] = "Peach";
$odbc['pass'] = "XXXX";
$mysql['host'] = "localhost";
$mysql['user'] = "root";
$mysql['pass'] = "";
$mysql['dbname'] = "sagetest";
$mysql['idfield'] = "id";
$debug=true;
// Step 1: Connect to the source ODBC and target mysql 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());
}
$myconn = mysql_connect($mysql['host'], $mysql['user'], $mysql['pass']);
if (!$myconn)
die("Error connecting to the MySQL database: " . $mysql_error());
if (!mysql_select_db($mysql['dbname'], $myconn))  die("Error selecting the database: " . mysql_error());
// Step 1.5: loop through each table with steps 2-7
$allTables = odbc_tables($conn);
$tablesArray = array();
while (odbc_fetch_row($allTables)) {
if (odbc_result($allTables, "TABLE_TYPE") == "TABLE") {
$tablesArray[] = odbc_result($allTables, "TABLE_NAME");
}
}

Спасибо за ваше время!

0

Решение

Первое: эта ошибка возникает из-за того, что у вас не установлено расширение ODBC PHP.

Проверьте http://php.net/manual/en/odbc.installation.php тоже.

В дистрибутивах Debian это можно решить с помощью apt-get install php5-odbc, но вы можете проверить это также с вашим хостинг-провайдером.

Когда вы видите Call to undefined function Вы всегда должны проверять php.net, чтобы быть уверенным в названии функции, иначе расширение не загружено.

PS 1: я думаю, что вы пытаетесь сравнить / передать данные между двумя базами данных, верно?

PS 2: убедитесь, что ваш сервер может достичь адреса ODBC. Веб-сервер — это не ваша машина разработки, поэтому localhost — это не настоящий localhost;)

0

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

Других решений пока нет …