У меня есть месячные имена в виде столбцов, таких как jan, feb, march и т. Д. В моей таблице.
В моей Форме пользователь должен выбрать месяц из раскрывающегося списка, который я выбираю пользователем как $ month_name.
Я хочу видеть данные в $ month_name, которое не равно 0.00.PHP Mysql - Использовать переменную как имя столбца в операторе Select
Когда эхо $ MONTH_NAME я получаю: джан или фев или т.п.
Я использовал $ MONTH_NAME в моем отборном заявлении, но не работает:
первых попробовать не работает:
$sql = "SELECT * FROM bookoff_monthly WHERE '.$month_name.' <> 0.00 AND year='$year' ";
2 старайтесь не работать:
$sql = "SELECT * FROM bookoff_monthly WHERE $month_name <> 0.00 AND year='$year' ";
** но следующие работы, но это не то, что я хочу:
$sql = "SELECT * FROM bookoff_monthly WHERE jan <> 0.00 AND year='$year' ";
Вы могли бы добавить, что идентификаторы экранирования в этом случае должны быть, потому что столбец 'DEC' будет разорвать нереализованные запросы. Причина: 'DEC' является [зарезервированным словом] (https://dev.mysql.com/doc/refman/5.6/en/reserved-words.html) в MySQL. $ year может использоваться как есть, но лучше было бы использовать параметризованные подготовленные инструкции. Обратите внимание, что нельзя использовать параметры для идентификаторов. – VMai
Это хороший момент! Я всегда обертываю имена столбцов и таблиц в обратных галочках по этой причине – Luke
Это также верно, но выходит за рамки этого вопроса – Luke