Ответ 1
Я пытался вставить слово "включено" в крошечный столбец int
это довольно нормально для mysql. 0 будет вставлен.
как я могу показать сообщение об ошибке/причину для неудачных команд sql.
для реальных ошибок вам нужно просто настроить PHP для отображения их
ini_set('display_errors',1);
поэтому вы сможете увидеть каждое неперехваченное исключение.
Кроме того, если вы собираетесь отображать сообщение об ошибке, но не обрабатывать эту ошибку, просто не используйте try..catch вообще. PHP будет делать всю работу уже. Это точка.
Большинство людей путают сообщения об ошибках с обработкой ошибок. Последнее не должно использоваться для первого. При работе с сообщениями об ошибках ваша единственная цель - сделать PHP для их повышения и настроить правильное назначение:
- на сервере разработки сообщение об ошибке должно отображаться на экране
- в режиме реального разговора он не должен отображаться, но зарегистрирован.
без всех этих блоков try-catch вы сможете управлять сообщениями об ошибках (включая не-исключения) с помощью пары настроек ini или одной функции обработчика ошибок (о чем я упомянул вам в другом ответе).
используйте try..catch, только если вы собираетесь обрабатывать само ошибку - скажем, для подключения к другому серверу, например.
Итак, чтобы ответить на ваш вопрос более подробно:
- Установите PDO в режиме исключения. Выполнено уже.
- Удалите все блоки try..catch, которые обрабатывают только сообщения об ошибках.
- Установите PHP, чтобы показывать ошибки на сервере разработки с помощью директивы ini выше.
- На реальном сервере настоятельно рекомендуется регистрировать ошибки, а не отправлять их по электронной почте. Но если вы все еще этого хотите, используйте одиночный настраиваемый обработчик исключений, чтобы отправлять электронные письма вместо сотен try..catch blocks