Фатальная ошибка - execute () php 5.2.13

0

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

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

  • 0
    Я вижу эту ошибку на prepare() когда соединение с базой данных недопустимо. Я не видел это на execute() до сих пор.
Теги:

2 ответа

0
Лучший ответ

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

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

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

  • 0
    Спасибо, ЛСД, у меня, похоже, есть ошибка в моем выражении sql после добавления строки выше. Позвольте мне пройти через это и посмотреть, поможет ли это :) Еще раз спасибо!
  • 0
    Спасибо, что исправили это :)
2

Ваш вызов prepare, вероятно, не работает. Вероятно, это связано с неверным выражением SQL.

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

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

  • 0
    Недопустимый SQL в подготовленном операторе выдает ошибку «SQLSTATE [42000]: ошибка синтаксиса или нарушение доступа», а не эту ошибку. Практически все может быть успешно подготовлено (я только что попробовал «asl aslkjd», и он вернул объект оператора PDO).
  • 0
    Это зависит от используемой библиотеки. Эта ошибка SQL может быть преобразована библиотекой или драйвером доступа SQL в нулевое или ложное возвращаемое значение, что приведет к этой ошибке.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню