从远程Web服务器连接到本地数据库

时间:2014-10-08 16:13:57

标签: php odbc localhost database-administration

我正在尝试从网络服务器连接到我的本地数据库,但我得到了

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");
   }
}

感谢您的时间!

1 个答案:

答案 0 :(得分: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地址。 Web服务器不是您的开发者,因此localhost不是真正的本地主机;)