У меня есть собственный обработчик ошибок, который перехватывает все исключения и сохраняет их в журнале. Прямо сейчас, если у меня есть синтаксическая ошибка в запросе mysqli, например, опечатка, страница полностью перестает загружаться в этот момент. Исключение не выдается, поэтому обработчик ошибок не запускается и ничего не регистрируется.
Это нормально? Есть ли настройка PHP, которую я должен проверить, чтобы исправить это, чтобы любые ошибки запроса mysqli вызывали исключения?
(Я не хочу, чтобы возникало исключение, если запрос возвращает 0 результатов - только если он выдает ошибку из-за опечатки или другой ошибки в структуре запроса)
Пример запроса:
if($result=$db->query('SELECT bad_field_reference FROM table')){while($r=$result->fetch_assoc()){$data[]=$r;}}$result->free();
Если я попытаюсь выполнить этот запрос в PHPMyAdmin, он скажет мне, что столбец bad_field_reference не существует. Если я попытаюсь выполнить его как часть моего PHP-скрипта, вся страница перестанет загружаться в этот момент.
Чтобы уточнить, я просто проводил тестирование, просматривая исходный код страницы. По-видимому, остальная часть страницы загружается, однако, когда java включена, некоторые элементы скрыты, тогда я использую jquery для повторного отображения некоторого содержимого в анимированном виде. Эти сценарии jquery не выполняются, поэтому страница перестала загружаться.
Итак, теперь 2 вопроса: как мне заставить PHP «поймать» ошибку и как заставить jquery по-прежнему запускать свои сценарии?
free()
, говорящего вам, что что-то требует объекта оператора mysqli, но задано логическое значение? 05.10.2013