PDO в PHP: что важно знать, чтобы не напороться на ошибки
Часто вижу, как народ либо ковыряется с mysqli, либо использует PDO как есть, без понимания, почему и что там вообще происходит. Лично для меня PDO — неплохой вариант для работы с БД, если использовать правильно. Главное — всегда выполняю четыре вещи: устанавливаю правильный режим ошибок (PDO::ERRMODE_EXCEPTION), чтобы не проморгать фатальные баги; выбираю подходящий режим выборки данных (FETCH_ASSOC обычно хватает); никогда не вставляю переменные напрямую в запрос, а только через подготовленные выражения; и при необходимости явно указываю кодировку в настройках подключения. Еще рекомендую проверить, чтобы в DSN был правильный charset — это спасает от проблем с кириллицей. Без этого — или кракозябры, или баги с вставкой. Если при выполнении запроса ловим ошибки — лучше сразу все вывести, чтобы понять, что пошло не так. И не забывайте, что fetchAll() жрет память и время, если таблица большая — лучше итерировать по fetch(), если это большой набор данных. Кто еще использует PDO? Какие лайфхаки или подводные камни заметили?
|