Jamie Hutber Jamie Hutber - 1 year ago 320
MySQL Question

Call to undefined method MDB2_Error::setFetchMode()

I am using PEAR's MDB2 to connect to my MySQL DB's.

I have never had a problem before but this particular host is causing me problems.

At first I thought it was the user credentials but I have tested on the same file with a standard

code to connect successfully.

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

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


I outputting $this->conn with a dump

[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'


I do have
MDB2_Driver_mysql 1.4.1
installed along with PEAR and MDB2... Makes me confused, I don't imagine using modrewrites would change this at all.

Answer Source

Your connection is failing and you get back error object (class MDB2_Error) instead of connection object (class extending MDB2_Driver_Common).

Use PEAR::isError($this->conn) to check if the connection succceeded.

[Edit - Hutber]

This Means You Haven't connected to the db, pw problems, user not privaliaged etc

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download