致命错误 - 执行()php 5.2.13

时间:2010-10-19 20:23:16

标签: php mysql linux apache

我在Linux机器上有PHP 5.2.3,apache2.x,mysql 5.x.直到昨天,一切都很好。今天早上突然间有一个php文件开始抛出“致命错误:调用一个非对象的成员函数execute()”。我使用PDO(准备,执行,关闭游标等)。你有遇到过这个问题吗?有人知道这个问题吗。

非常感谢, [R

2 个答案:

答案 0 :(得分:2)

您的prepare电话可能失败了。这可能是由于SQL语句无效。

我们需要确切知道您正在使用哪个库来了解更多信息,但prepare可能会返回false而不是对象。然后,当您尝试在返回值上调用execute时,您尝试在false而不是对象上调用它,从而导致出现错误消息。

如果您echovar_dump正在调用execute,则可以查看更多详细信息。

答案 1 :(得分:0)

正如艾伦所说,问题可能是prepare正在返回false而不是PDOStatement。调试此方法的最佳方法是打开警告。为此,请在初始化PDO后立即输入此代码:

$db = new PDO();  // insert the following after this line
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );

这意味着当prepare语句失败时,PDO将引发PHP警告。这应包含有助于您调试问题的信息。