2009-11-13 162 views
0

我試圖從CakePHP應用程序使用訪問(MDB)數據庫。在Windows機器上,這工作正常。在使用Unixodbc的Linux機器上,這根本不起作用。錯誤如下:CakePHP和使用Unixodbc連接到MS Access數據庫

警告(2):odbc_connect()[function.odbc-connect]:SQL錯誤:[unixODBC] [Driver anager]找不到數據名稱,並且沒有指定默認驅動程序,SQL狀態IM002 SQLCONNECT中[APP /供應商/ ADODB /司機/ ADODB-odbc.inc.php, 線60]

CakePHP的數據源定義是:

   $default = array(
          'driver' => 'adodb', 
          'connect' => 'access', 
          'host' => "Driver=[MDBODBC]; Dbq=".$filePath.";Uid=Admin;Pwd=;}", 
          'login' => 'Admin', 
          'password' => '', 
          'database' => '' 
        ); 

有什麼不對的配置?

回答

2

'主機'元素通常看起來很奇怪,因爲它沒有匹配的大括號。

行號60(來自錯誤消息)在dodb-odbc.inc.php中是如何查看的?配置陣列的哪些元素用於撥打odbc_connect?將此電話與odbc_connect documentation.

的示例進行比較您是否嘗試過直接使用odbc_connect進行連接?

順便說一句,我的蛋糕的版本有蛋糕框架內的ODBC DBO實際駕駛,在

cake/libs/model/dbo/dbo_odbc.php 

它使用odbc_pconnect。在那裏,作爲odbc_pconnect的第一個參數的$dsn字符串來自config數組的'database'元素,而不是'host'元素。

我不知道你爲什麼會在

app/vendors/adodb/drivers/adodb-odbc.inc.php 

使用第三方解決方案尤其是因爲the Date Library in John Lim ADOdb Library for PHP allows remote attackers to obtain sensitive information

相關問題