Скоро с этим MySQL с ума сойду...
Да, с таким подходом лучше бросайте это грязное дело...
Ничего не понимаю!
Ну так чтобы что-то понимать, нужно
смотреть что происходит,
знать что содержится в переменных и
читать ошибки. Чтобы смотреть что происходит нужно использовать var_dump или ставить xdebug, чтобы знать что в переменных - нужно понимать какие переменные смотреть. В том числе знать почему возникают варнинги и все их исправить.
В данном случае у вас кроме того что запрос
опять не использует подготовленные выражения, опять
никак не проверяются переменные которые вы "суваете" в запрос. Сформируйте запрос в переменную, выведите ее, посмотрите где в переменных косяк (хотя он и так виден и вытекает из предыдущих описанных ошибок)... Короче учитесь искать ошибки, тем более что все они в логе описаны.