2014-10-08 375 views
0

本地数据库,我试图从网络服务器连接到我的本地数据库,但我得到连接到远程Web服务器

Fatal error: Call to undefined function odbc_connect() 
      in -/-/-/70/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

你正在'odbc_'与'mysql_'函数混合,*为什么?* – 2014-10-08 16:17:44

+0

@ Fred-ii-,谢谢你的回复。我也要同步Sage 50 peachtree数据库与mysql_这就是为什么你看到mysql_函数。 – Keven 2014-10-08 16:24:37

+0

这可能是相关信息http://sagecity.na.sage.com/support_communities/sage50_accounting_us/f/132/t/44819.aspx – RiggsFolly 2014-10-08 16:36:07

回答

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不是真正的本地主机;)

+0

存储的PHP代码谢谢!正确我试图同步两个数据库。我正在使用Windows,我必须安装odbc PHP扩展?如果是的话如何?它在本地机器上工作正常,我试图完成的是访问使用odbc的本地sage 50 Pervasive数据库,然后与MYSQl同步。 – Keven 2014-10-08 19:10:25