0

我正在尝试使用 CakePHP 应用程序中的 Acces (MDB) 数据库。在 Windows 机器上,这可以正常工作。在使用 Unixodbc 的 Linux 机器上,这根本不起作用。错误如下:

警告 (2): odbc_connect() [function.odbc-connect]: SQL 错误: [unixODBC][Driver anager]Data ource name not found, and no default driver specified, SQL state IM002 in SQLConnect [APP/vendors/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' => ''
                    );

这个配置有什么问题?

4

1 回答 1

2

'host' 元素通常看起来很奇怪,因为它具有无与伦比的右大括号。

dodb-odbc.inc.php 中的第 60 行(来自错误消息)如何?它使用配置数组的哪些元素来调用odbc_connect?将调用与odbc_connect 文档的示例进行比较。

您是否尝试过odbc_connect直接使用连接?

顺便说一句,我的蛋糕版本实际上在蛋糕框架内有一个 ODBC DBO 驱动程序,位于

cake/libs/model/dbo/dbo_odbc.php

它使用odbc_pconnect. 在那里,作为$dsn第一个参数的字符串odbc_pconnect来自配置数组的“数据库”元素,而不是“主机”元素。

我不知道你为什么要使用第三方解决方案

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

特别是因为John Lim ADOdb Library for PHP 中的日期库允许远程攻击者获取敏感信息

于 2009-11-13T13:24:53.177 回答