Я пытаюсь подключиться к моей локальной базе данных с веб-сервера, но я получаю
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"); } }
Спасибо за ваше время!
Во-первых: Эта ошибка возникает из-за того, что расширение ODBC PHP не установлено.
Также проверьте http://php.net/manual/en/odbc.installation.php .
В debian distros вы можете решить это с помощью apt-get install php5-odbc
, но вы также можете проверить это у своего хостинг-провайдера.
Когда вы видите Call to undefined function
вы всегда должны проверить php.net, чтобы быть уверенным в имени функции, или расширение не загружено.
PS 1: Я думаю, вы пытаетесь сравнить / перенести данные между двумя базами данных, не так ли?
PS 2: Убедитесь, что ваш сервер может достичь адреса ODBC. Веб-сервер не является вашей машиной dev, поэтому localhost не является настоящим локальным хостом;)