致命错误:调用未定义的函数:MDB2_Driver_MYSQL :: getAll()

时间:2012-04-13 22:41:00

标签: php mysql pear mdb2

我正在将一个站点从Fedora 14,PHP4和PEAR DB升级到Fedora 16,PHP 5.4和PEAR MDB2 2.5.0b3,我收到了错误

  

致命错误:调用未定义的函数:MDB2_Driver_MYSQL :: getAll()。在1892行的/usr/share/php/MDB2.php中

显然,我已经检查了MDB2.php文件的第1892行,它包含__call魔术方法的错误报告代码(允许您通过将其传递到{{1}来调用特定函数})

我检查了__call的用法,似乎没有。{同样,当我试图找到来自__call的地方时,在类声明(MDB2_Driver_MYSQL中,它唯一提到的地方是MDB2.php(作为关于MySQL驱动程序的注释)。 )和.xml文件中的描述标题。

我手动将class MDB2_Driver_mysql extends MDB2_Driver_Common文件包含在定义了/usr/share/php/MDB2/Extended.php类的文件中,但没有帮助(并不是说这将是一个永久修复...)

有没有人遇到过这个错误,如果有的话,你做了什么修复它?事实证明谷歌几乎没用,因为specifically mentioned唯一的地方并没有真正解决它。

2 个答案:

答案 0 :(得分:1)

将类中的getAll()更改为queryAll(),导致DB和amp;之间存在一些差异。 MDB2,与getOne,getRow相同 - 它们都更改为queryOne,queryRow。在这里,您可以阅读http://www.phpied.com/db-2-mdb2/

答案 1 :(得分:0)

确保在进行查询之前在代码中加载扩展模块,类似于以下内容:

$db->loadModule('Extended');