Часто сталкиваюсь с тем, что скрипт работает, но база ведёт себя странно — данные не сохраняются, запросы висят или возвращают пустоту. Обычно самые простые ошибки — забыть проверить подключение к базе, не обработать ошибку после запроса или неправильно сформировать SQL. Вот что у себя заметил:
1) Забыл явно установить кодировку соединения — проблемы с кириллицей и мусором в колонках.
2) В запросах не экранировал данные, думал, что mySQLi делает это сам.
3) Использую mysqli_query() без проверки результата — ошибка идет мимо и потом ломается логика.
4) Запросы с JOIN или подзапросами — неправильно выставил ключи, в итоге пустой набор данных.
5) Оптимизацию почти не делаю, поэтому при росте таблиц всё начинает тормозить.
Последнее время стараюсь всегда лочить – если вставляю или обновляю списки, которые завязаны на других таблицах, чтобы не было конфликтов и частичных обновлений. Ещё полезно смотреть mysql_error() сразу же после запроса — экономит кучу времени.
А у кого как с этим? Какие самые частые ступоры с базой в PHP?
У меня тоже часто виснут запросы, когда забыл проверить соединение или не обработал ошибку. Пару раз мучился с кодировкой — кириллица превращалась в абракадабру. Еще запутывало, когда в запросах перемешивались кавычки, и данные просто не попадали в таблицу. Сейчас стараюсь сразу после запроса смотреть на ошибку и всегда явно устанавливать кодировку, хотя бы utf8. Это спасает от большинства глюков.