Прежде всего, всегда иметь эту строку перед подключением MySQLi во всех ваших средах:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
После этого все ошибки MySQL будут перенесены в исключения PHP. Исключение, которое не доступно, в свою очередь, приводит к фатальной ошибке PHP. Таким образом, в случае ошибки MySQL вы получите обычную ошибку PHP. Это немедленно сообщит вам об ошибке. Трассировка стека приведет вас к тому месту, где произошла ошибка.
Обратите внимание, что вы должны уметь видеть ошибки PHP вообще . И здесь действительно идет речь о разных средах:
-
На реальном сайте вам нужно заглянуть в журналы ошибок, поэтому настройки должны быть
error_reporting(E_ALL); ini_set('display_errors', 0); ini_set('log_errors', 1);
-
Хотя на локальном сервере разработки все нормально делать ошибки на экране:
error_reporting(E_ALL); ini_set('display_errors', 1);
И небольшой список того, что вы не должны :
- Использовать оператор подавления ошибок (
@
) - Используйте
die()
илиecho
или любую другую функцию, чтобы безошибочно печатать сообщение об ошибке на экране. PHP может все откликнуться, помощь не требуется. - Тестирование результата запроса вручную (например
if($result)
) просто не имеет смысла. Либо ваш запрос не удался, и вы уже получите исключение ошибки, либо все было в порядке, и нечего тестировать. - Используйте try..catch для повторения сообщения об ошибке. Снова PHP может сделать это лучше, лучше.