Фатальная ошибка - execute () php 5.2.13 - PullRequest
0 голосов
/ 20 октября 2010

У меня PHP 5.2.3, apache2.x, mysql 5.x на Linux-машине.До вчерашнего дня все работало нормально.Этим утром внезапно один из файлов php начал выдавать «Неустранимая ошибка: вызов функции execute () для необъектного объекта in».Я использую PDO (подготовить, выполнить, закрыть курсор и т. Д.).Вы когда-нибудь сталкивались с этой проблемой?Кто-нибудь знает исправление для этого, пожалуйста.

Большое спасибо, R

Ответы [ 2 ]

2 голосов
/ 20 октября 2010

Ваш prepare вызов, вероятно, не удался. Вероятно, это связано с недопустимым оператором SQL.

Нам нужно точно знать, какую библиотеку вы используете, чтобы узнать больше, но prepare, вероятно, возвращает false вместо объекта. Затем, когда вы пытаетесь вызвать execute для возвращаемого значения, вы пытаетесь вызвать его на false вместо объекта, вызывая сообщение об ошибке, которое вы видите.

Если вы echo или var_dump наберете значение, на которое вы звоните execute, вы сможете увидеть более подробную информацию.

0 голосов
/ 20 октября 2010

Как говорит Алан, проблема, вероятно, в том, что prepare возвращает false, а не PDOStatement.Лучший способ отладить это - включить предупреждения.Чтобы сделать это, поместите этот код сразу после инициализации PDO:

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

Это будет означать, что PDO выдаст предупреждение PHP, когда инструкция prepare завершится неудачно.Он должен содержать информацию, которая поможет вам отладить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...