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。