我正在使用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会改变这一点。
答案 0 :(得分:2)
您的连接失败并且您返回错误对象(类MDB2_Error
)而不是连接对象(扩展MDB2_Driver_Common
的类)。
使用PEAR::isError($this->conn)
检查连接是否成功。
[编辑 - 胡伯]
这意味着你没有连接到数据库,pw问题,用户没有私有化等
答案 1 :(得分:0)
对我来说,修复它就像从梨安装MDB2库一样简单。
假设您已经安装了PEAR:
pear install MDB2
pear install MDB2#mysql
从终端/ cmd窗口,我很高兴。
答案 2 :(得分:0)
如果有人看到这个线程并且他们确实正确安装了MDB2和db驱动程序:我遇到了同样的问题,结果发现我没有为db用户设置足够的权限。 Durrr