我正在尝试使用CakePHP应用程序中的Acces(MDB)数据库。在Windows机器上,这工作正常。在使用Unixodbc的Linux机器上,这根本不起作用。错误如下:
警告(2):odbc_connect()[function.odbc-connect]:SQL错误:[unixODBC] [驱动程序anager]未找到数据源名称,并且未指定默认驱动程序,SQLConnect中的SQL状态IM002 [APP / vendors /adodb/drivers/adodb-odbc.inc.php, 第60行
CakePHP数据源定义是:
$default = array(
'driver' => 'adodb',
'connect' => 'access',
'host' => "Driver=[MDBODBC]; Dbq=".$filePath.";Uid=Admin;Pwd=;}",
'login' => 'Admin',
'password' => '',
'database' => ''
);
此配置有什么问题?
答案 0 :(得分:2)
'host'元素一般看起来很奇怪,因为它具有无与伦比的右括号。
如何在dodb-odbc.inc.php中查看第60行(来自错误消息)?配置数组的哪些元素用于调用odbc_connect
?将调用与odbc_connect documentation.
您是否尝试过直接使用odbc_connect
进行连接?
顺便说一句,我的蛋糕版本实际上在蛋糕框架中有一个ODBC DBO驱动程序,位于
cake/libs/model/dbo/dbo_odbc.php
它使用odbc_pconnect
。在那里,作为$dsn
的第一个参数的odbc_pconnect
字符串来自配置数组的'database'元素,而不是'host'元素。
我不知道你为什么要在
中使用第三方解决方案app/vendors/adodb/drivers/adodb-odbc.inc.php