Отладка ошибки вставки MySQL, когда в PHP не возвращена ошибка

0

Я тестирую новый код для вставки в базу данных MySQL с помощью PHP. Тест

$stmt->execute();
if ($stmt->errorCode() != 0)
{
    $arr = $stmt->ErrorInfo();
    throw new Exception('SQL failure:'.$arr[0].':'.$arr[1].':'.$arr[2]);
}

Он забросил ряд ошибок, которые я исправил один за другим. Наконец он провалился, но ничего не было написано на столе. Есть ли какой-либо другой тест, который я могу сделать, или журнал, который я мог бы настроить, чтобы понять, в чем проблема? MySQL работает локально на моем компьютере разработки.

Спасибо за любую помощь, Curt

P.S. Подобная публикация шесть месяцев назад не предлагала никаких дополнительных средств отладки, которые я мог видеть.

  • 0
    $ stmt является экземпляром PDOStatement?
Теги:

2 ответа

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

Я нашел ответ на свой вопрос, но я надеюсь на лучшее. Я скопировал выражение sql в окно запроса phpMyAdmin SQL, заменил литералы для всех переменных и запустил его. Я получил ошибку 1426 IIRC, которая касается несоответствия внешнего ключа. Я получил эту ошибку, потому что таблица внешнего ключа не была презервативом, а остальные были. Как только я сделал это изменение в БД, запрос работал правильно. Вы могли бы подумать, что ошибка будет возвращена в errorCode.

0

Вы можете активировать MySQL Общий журнал запросов и следить за этим файлом журнала.

  • 0
    Я включил журнал и вижу активность, но не когда выполняю постановку задачи. Это тот случай, когда MySQL иногда не сообщает об ошибках?
  • 1
    Ну, я знаю по крайней мере одну ошибку, о которой она не сообщает. Я не смог установить в поле первичного ключа значение автоинкремента и не указал значение на ВСТАВКЕ, как в случае, если бы я это сделал.

Ещё вопросы

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