我正在将一个站点从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唯一的地方并没有真正解决它。
答案 0 :(得分:1)
将类中的getAll()更改为queryAll(),导致DB和amp;之间存在一些差异。 MDB2,与getOne,getRow相同 - 它们都更改为queryOne,queryRow。在这里,您可以阅读http://www.phpied.com/db-2-mdb2/
答案 1 :(得分:0)
确保在进行查询之前在代码中加载扩展模块,类似于以下内容:
$db->loadModule('Extended');