【发布时间】:2016-11-16 01:23:23
【问题描述】:
我正在使用 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 会改变这一点。
【问题讨论】:
-
连接失败,所以你得到了一个没有
setFetchMode方法的MDB2_Error。 -
运行
echo $this->conn->getMessage()以获取实际的错误消息。 -
不错,但很糟糕:
MDB2 Error: not found