0

我正在将站点从 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魔术方法的错误报告代码(允许您通过将特定函数传递给来调用它__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,但这没有帮助(并不是说这将是一个永久修复......)

有没有人遇到过这个错误,如果有,你做了什么来解决它?事实证明,谷歌几乎毫无用处,因为唯一特别提到它的地方并没有真正解决它。

4

2 回答 2

1

将类中的 getAll() 更改为 queryAll(),导致 DB 和 MDB2 之间存在一些差异,getOne、getRow 也是如此——它们都更改为 queryOne、queryRow。在这里你可以阅读它http://www.phpied.com/db-2-mdb2/

于 2013-09-27T06:50:04.360 回答
0

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

$db->loadModule('Extended');
于 2012-04-16T15:37:24.507 回答