2012-04-13 16 views
0

Ich aktualisiere eine Website von Fedora 14, PHP4 und PEAR DB zu Fedora 16, PHP 5.4 und PEAR MDB2 2.5.0b3, und ich bekomme den FehlerSchwerwiegender Fehler: Aufruf zu undefinierter Funktion: MDB2_Driver_MYSQL :: getAll()

Fatal error: Call to undefined function: MDB2_Driver_MYSQL::getAll(). in /usr/share/php/MDB2.php on line 1892

Natürlich, ich habe Linie geprüft 1892 der MDB2.php-Datei, und es enthält den Fehlermeldecode für die __call magische Methode (Damit können Sie es in __call eine bestimmte Funktion aufrufen, indem)

Ich habe für die Verwendung von __call überprüft, und es scheint keine zu sein. Wenn ich versuche, herauszufinden, woher MDB2_Driver_MYSQL kommt, ist der einzige Ort, an dem es sogar erwähnt wird, MDB2.php (als Kommentar zum Treiber für MySQL), in der Klassendeklaration (class MDB2_Driver_mysql extends MDB2_Driver_Common) und der Beschreibungstitel in der XML-Datei

Ich habe manuell enthalten die /usr/share/php/MDB2/Extended.php Datei in der Datei, in der die MDB2_Driver_mysql Klasse definiert ist, und das half nicht (nicht, dass dieses Update eine permanant gewesen wäre ...)

Hat jemand diesen Fehler aufgetreten und wenn ja, was hast du getan, um es zu reparieren? Google hat sich als fast nutzlos erwiesen, da der einzige Ort, an dem es specifically mentioned ist, sich nicht wirklich damit beschäftigt, es zu reparieren.

+0

Kennen Sie diese Seite: http://pear.php.net/manual/en/package.database.mdb2.faq.php? –

Antwort

0

Stellen Sie sicher, das erweiterte Modul in Ihrem Code zu laden, bevor eine Abfrage zu machen, ähnlich wie unten:

$db->loadModule('Extended'); 
+0

Zwischen dem Kommentar von Raffael oben und dem hier, habe ich versucht, das erweiterte Modul auf verschiedene Arten zu laden, von denen keines einen Unterschied machte (auch wenn es als Teil der MDB2 :: connect-Funktion geladen wurde). Die seltsame Sache ist, der Aufruf getAll funktioniert mit MDB2, nur nicht mit MDB2_Driver_MYSQL – jakimfett

1

Änderung getAll() in der Klasse, zu queryAll(), verursachen es einen Unterschied zwischen der DB & MDB2, und das gleiche mit getOne, getRow - sie alle in QueryOne, QueryRow geändert. Hier können Sie darüber lesen http://www.phpied.com/db-2-mdb2/

+0

Danke, dass gearbeitet hat –

Verwandte Themen