CakePHP和使用Unixodbc连接到MS Access数据库

问题描述:

我试图从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' => '' 
        ); 

有什么不对的配置?

'主机'元素通常看起来很奇怪,因为它没有匹配的大括号。

行号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