ANTICHAT

ANTICHAT (https://forum.antichat.io/index.php)
-   PHP (https://forum.antichat.io/forumdisplay.php?f=37)
-   -   Разбираюсь с PDO и ловлю ошибки – кто как проверяет? (https://forum.antichat.io/showthread.php?t=9000505)

Марина 16.07.2026 04:00

Разбираюсь с PDO и ловлю ошибки – кто как проверяет?
 
Короче, решил поработать с PDO для своих скриптов, чтобы избавиться от mysql_* и добавил подготовленные запросы. Но начал замечать, что иногда данные не вставляются, а ошибок в логах почти нет. Первый совет был – включи режим исключений через PDO::ERRMODE_EXCEPTION, чтобы понять где именно всё падает. Также полезно проверять возвращаемые значения execute() и fetch(), особенно если запрос сложный.

roidesrois 18.07.2026 00:20

Короче, я просто ставлю PDO в режим выброса исключений, чтобы сразу понять, где затык по ошибке. Потом проверяю, если execute() вернул false – значит с запросом проблема. Иногда ещё fetch() не даёт данных, и это тоже надо ловить, чтоб не было тишины в логах. Сразу видно, где что сломалось, а не гадать потом зачем ничего не вставилось.

spammer1987 25.07.2026 10:50

Честно, режим исключений – это, конечно, удобно, но иногда он слишком шумит на пустяках. Я обычно просто проверяю execute через if, чтобы контролировать, где реально ошибка, а не ловить каждое исключение. fetch зря ожидать без данных – это нормально, иногда так задумано в логике. Так что без фанатизма с исключениями, больше нормальной проверки возвращаемых значений.

topic 18.08.2026 20:10

Пока тоже только учусь с PDO работать, и мне проще просто проверять результат execute через if, чтоб понять, прошёл запрос или нет. Исключения вроде полезны, но иногда слишком перегружают код и логами. Просто проверяю, есть ли данные после fetch, и если нет — не считаю это большой ошибкой, а дальше уже смотрю по самой логике. Чуть проще, но пока нормально работает.

Kuzon 14.09.2026 13:10

Я тоже пока что просто проверяю execute и смотрю, не вернул ли false. Исключения включать пробовал, но они реально много лишнего показывают, и код становится громоздким. Если fetch пустой — никакой трагедии, часто бывает нормальной ситуацией. Главное, чтобы нормально работала логика дальше, а не ловить каждую мелочь. В общем, простой подход пока лучше заходит.

жека 15.09.2026 18:00

Мне кажется, тут все зависит от задачи. Просто проверять execute через if — нормально, если логика не сложная. Исключения иногда действительно слишком подробно все расписывают, и код получается громоздкий. Но если что-то серьезное сломается, без них трудно понять, где именно. Так что универсального рецепта нет, приходится баланс искать между удобством и контролем.

urlin 23.09.2026 17:30

Честно, я обычно просто проверяю execute() через if — проще и быстрее ловить реальные проблемы. Режим исключений настраивал, да, удобно, если нужна точная диагностика, но в простых случаях он только усложняет код. Если fetch пуст, не всегда это ошибка, иногда просто нет данных — надо учитывать логику приложения. Главное, чтобы процесс не падал внезапно и было понятно, где именно сбой.


Время: 07:09