Проблемы, с которыми сталкиваюсь у многих начинающих, обычно такие:
— Забывают ставить точку с запятой, и всё падает без нормального сообщения об ошибке.
— Перепутывают одиночные и двойные кавычки — особенно с переменными внутри строк.
— Не показывают ошибки через ini_set('display_errors', 1) и error_reporting(E_ALL), а потом ломаются, что не видно, что именно.
— Делают запросы в БД через mysql_* функции, которые уже не поддерживаются, вместо PDO или mysqli.
— Не используют подготовленные выражения и потом клянутся на SQL-инъекции — ты хоть попробуй нормальный способ, а не костыли.
— Путаются с областью видимости переменных, особенно когда работают с функциями и глобальными значениями.
— Инициализируют массивы и переменные как null, а потом пытаются с ними работать как с массивами — бац, ошибка.
— Не проверяют входные данные — нет ни валидации, ни фильтрации, что сразу ведет к багам.
— Не разделяют логику и отображение, пытаясь напихать HTML внутрь PHP с минимальным контролем — код становится нечитаемым.
— Забывают про правильную кодировку, и кириллица в базе отображается как кракозябры.
Лично мне кажется, что часто проблема не столько в конкретных ошибках, сколько в том, что новички просто не привыкли к отладке и не используют ошибки как подсказки. Всё равно, пока не начать ориентироваться в выводе ошибок и не перейти на современные расширения, нормального кода не будет. Просто базу вроде PDO или mysqli стоит использовать сразу, чтобы потом не переделывать.