【问题标题】:CakePHP and connecting to MS Access db using UnixodbcCakePHP 和使用 Unixodbc 连接到 MS Access db
【发布时间】:2009-11-13 12:54:28
【问题描述】:

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

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

这个配置有什么问题?

【问题讨论】:

    标签: php cakephp odbc ms-jet-ace unixodbc


    【解决方案1】:

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

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

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

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

    cake/libs/model/dbo/dbo_odbc.php
    

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

    我不知道你为什么会在

    中使用第三方解决方案
    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多