2014-10-08 149 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