Call to undefined method MDB2_Error::von setFetchMode()
Bin ich mit PEAR MDB2-Verbindung zu meiner MySQL-DB ist.
Ich hatte noch nie ein problem vor, aber dieses bestimmten Hosts verursacht mir Probleme.
Zuerst dachte ich, es war die Anmeldeinformationen des Benutzers, aber die ich getestet habe, auf die gleiche Datei mit einem standard - MySQL
code, um erfolgreich zu verbinden.
//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
Bearbeiten
Ich die Ausgabe von $this->conn mit einem 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'
)
)
Ich habe MDB2_Driver_mysql 1.4.1
installiert zusammen mit PEAR und MDB2... Macht mich verwirrt, ich kann mir nicht vorstellen mit modrewrites ändern würde, überhaupt.
- Die Verbindung ist fehlgeschlagen, so hast du eine
MDB2_Error
welches nichtsetFetchMode
Methode. - Führen Sie
echo $this->conn->getMessage()
um die eigentliche Fehlermeldung. - Nice one, aber schade:
MDB2 Error: not found
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Verbindung fehlschlägt, und Sie erhalten wieder Fehler-Objekt (Klasse
MDB2_Error
) anstelle von connection-Objekt (Klasse, ErweiterungMDB2_Driver_Common
).Verwenden
PEAR::isError($this->conn)
zu überprüfen, ob die Verbindung succceeded.[Edit - Hutber]
Dies Bedeutet, dass Sie nicht verbunden mit der db, pw Probleme, Benutzer nicht privaliaged etc
Strict Standards: Non-static method PEAR::isError() should not be called statically, assuming $this from incompatible context in
Nicht ideal, ich weiß nicht ganz, warum wird es nicht lassen Sie mich dies tun, aber es u gehen$this->conn instanceof PEAR_Error
statt.Also bei mir was fest war es so einfach wie die Installation der MDB2 library von Birne.
Wenn Sie bereits über PEAR installiert ist:
Aus einem terminal/cmd-Fenster, dann war ich gut zu gehen.
MDB2_Error
Objekt. Dies bedeutet auchMDB2
installiert wurde. Nach dem Umzug auf den neuen server du hast ein anderes problem:MDB2
wurde nicht installiert.Call to undefined method MDB2_Error::setFetchMode()
Und ich sehe nicht die Antwort die mir helfen, aber so oder so, wenn jemand sucht dieses problem, Sie haben beide Antworten jetzt helfen 🙂Den Fall, dass jemand sieht diesen thread und Sie Taten installieren MDB2 und der db-Treiber korrekt: ich hatte das gleiche Problem und es stellte sich heraus, hatte ich nicht genügend Berechtigungen für die db-Benutzer. Durrr