2012-04-13 54 views
0

我正在將一個站點從Fedora 14,PHP4和PEAR DB升級到Fedora 16,PHP 5.4和PEAR MDB2 2.5.0b3,並且出現錯誤致命錯誤:調用未定義函數:MDB2_Driver_MYSQL :: getAll()

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

很顯然,我已經檢查了MDB2.php文件的行1892年,它包含了__call魔術方法錯誤報告代碼(允許您通過將它變成__call調用特定功能)

我檢查了__call的用法,似乎沒有任何。同樣,當我試圖找到MDB2_Driver_MYSQL來自哪裏時,它甚至提到的唯一地方是在MDB2.php中(作爲關於MySQL驅動程序的註釋),類聲明(class MDB2_Driver_mysql extends MDB2_Driver_Common)以及其中的描述標題.xml文件。

我已經手動包含在文件中/usr/share/php/MDB2/Extended.php文件,其中MDB2_Driver_mysql類的定義,並沒有幫助(不,這將是一個您永久修復...)

有沒有人遇到過這種錯誤如果是這樣,你做了什麼來解決它?谷歌已經證明幾乎沒有用,因爲它唯一的地方是specifically mentioned並不真正處理它。

+0

你見過這個頁面:http://pear.php.net/manual/en/package.database.mdb2.faq.php? – 2012-04-16 15:46:38

回答

0

確保你事先加載在你的代碼擴展模塊,查詢數據,類似如下:

在你的類
$db->loadModule('Extended'); 
+0

在上面的Raffael和這裏的評論之間,我嘗試以各種方式加載擴展模塊,其中沒有任何區別(即使作爲MDB2 :: connect函數的一部分加載時)。 奇怪的是,getAll調用與MDB2協同工作,而不是MDB2_Driver_MYSQL – jakimfett 2012-04-18 20:07:49

1

變化GETALL(),以queryAll(),導致有DB之間的一些差異& MDB2,和getOne,getRow一樣 - 它們全部更改爲queryOne,queryRow。在這裏你可以閱讀關於它http://www.phpied.com/db-2-mdb2/

+0

,謝謝你的工作 – 2018-03-06 02:56:58

相關問題