0

我正在使用 PEAR 的 MDB2 连接到我的 MySQL 数据库。

我以前从来没有遇到过问题,但是这个特定的主机给我带来了问题。

起初我以为是用户凭据,但我已经使用标准MySQL代码在同一个文件上进行了测试以成功连接。

 //Error Code
 Fatal error: Call to undefined method MDB2_Error::setFetchMode() in /home/topazmar/public_html/db/db.php on line 15

 //Php Code
 $this->conn=MDB2::connect(array(
        'phptype'  => 'mysql',
        'username' => DATABASE_USR,
        'password' => DATABASE_PWD,
        'hostspec' => DATABASE_HOST,
        'database' => DATABASE_NAME,
    ));
    $this->conn->setFetchMode(MDB2_FETCHMODE_ASSOC); //Line 15

编辑

我用转储输出 $this->conn

[0] => Array
            (
                [file] => /home/topazmar/public_html/db/MDB2.php
                [line] => 979
                [function] => PEAR_Error
                [class] => PEAR_Error
                [type] => ->
                [args] => Array
                    (
                        [0] => MDB2 Error: not found
                        [1] => -4
                        [2] => 1
                        [3] => 1024
                        [4] => unable to find package 'MDB2_Driver_mysql' file 'MDB2/Driver/mysql.php'
                    )

            )

我确实MDB2_Driver_mysql 1.4.1与 PEAR 和 MDB2 一起安装了......让我感到困惑,我不认为使用 modrewrites 会改变这一点。

4

3 回答 3

2

您的连接失败并且您返回错误对象(类MDB2_Error)而不是连接对象(类扩展MDB2_Driver_Common)。

用于PEAR::isError($this->conn)检查连接是否成功。

[编辑-哈特伯]

这意味着您还没有连接到数据库、密码问题、用户未私有化等

于 2014-08-14T09:26:11.337 回答
0

所以对我来说,修复它就像从 pear 安装 MDB2 库一样简单。

假设您已经安装了 PEAR:

pear install MDB2 
pear install MDB2#mysql

从终端/cmd窗口,我很高兴。

于 2015-02-25T17:17:51.123 回答
0

如果有人看到这个线程并且他们确实正确安装了 MDB2 和 db 驱动程序:我遇到了同样的问题,结果证明我为 db 用户设置的权限不足。杜尔

于 2015-11-16T18:15:35.217 回答