Хорошей практикой считается сначала формировать строку запроса в переменной, затем передавать ее в квери.
Отличной практикой является использование препаред стэйтментов и плейсхолдеров.
После формирования строки ее можно вывести в дебаг и тупо вставить в пхпмайадмин и посмотреть что и почему не работает (если не работает).
Хорошо помогает включить при отладке все уровни ошибок и варнингов.