Я делаю сайт, используя php и mysql. В частности, с использованием расширения БД PDO. Мой вопрос заключается в том, должен ли я всегда проверять ошибки при запуске команды в sql. В кодах других я видел проверку ошибок для всех CRUD, некоторые только для C и D. Что я должен сделать, чтобы веб-сайт был отзывчивым, информативным и безопасным, если что-то идет не так, и код, который легко читается для всех.
Существуют ли какие-либо расширения БД для php, которые позаботятся, если это для меня?
Благодарю.
Конечно!
Почему бы тебе не Есть нет причин не и для этого есть все основания.
Это даже не должно быть вопросом.
Это все равно, что спросить: «Должен ли я всегда следить за своими вещами или бывают случаи, когда можно раздать мою кредитную карту и ПИН-код случайным незнакомцам на ночь?»
Некоторые могут рассматривать это как основанное на мнении.
Мое мнение, что лучшая практика — всегда проверять ошибки PDO.
Вы можете установить PDO::ERRMODE_EXCEPTION
и используйте блок try-catch и обработайте исключение, или вы можете оставить значение по умолчанию PDO::ERRMODE_SILENT
и проверьте возврат от каждого вызова функции PDO.
То, что функция PDO не выдает ошибку при разработке и тестировании, не означает, что в будущем она не выдаст ошибку. А наличие кода «молча» не помогает обнаружить проблемы или решить их.
Большинство вопросов, касающихся PHP и MySQL (размещенных на StackOverflow), относятся к теме «Плз, исправьте мой код для меня, потому что я понятия не имею, почему он не работает», и код задаваемых вопросов неизменно не проверка ошибок, возвращаемых интерфейсными функциями MySQL (будь то mysql_, mysqli_ или PDO.)
Мое мнение, что код, который оставляет по умолчанию PDO::ERRMODE_SILENT
и не проверяет ошибки после того, как вызов функции PDO по существу кладет свой мизинец в угол рта, стиль доктора Зла, и говорит: «Я просто предполагаю, что все пойдет по плану. Что?»
Да, всегда проверяйте наличие ошибок PDO.
Q: Существуют ли какие-либо расширения БД для php, которые позаботятся, если это для меня?
Я не знаю каких-либо расширений PHP, которые будут «обрабатывать» ошибки PDO для вас. Мое предпочтение PDO::ERRMODE_EXCEPTION
и используйте блок try-catch, чтобы перехватить исключение и обработать его. Да, это немного загромождает код.
Из вопросов, которые я вижу в StackOverflow о PHP и MySQL, код часто загроможден огромным количеством ненужного кода (обработка преобразований и вычислений, которые могут быть гораздо более эффективно обработаны в операторе SQL).