PHP, использующий переменную в запросе mysql с magic_quotes
У меня есть запрос MySQL, который использует значение в массиве как часть инструкции WHERE. Как я должен включить эту переменную?
Вот sql:"AND gender = '{$user_array[\"gender\"]}'"
PHP возвращает эту ошибку: Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting T_STRING
я имею magic_quotes
включенный. Я видел некоторые посты, предлагающие установить значение массива в другую переменную, но, кажется, нет необходимости, если у меня есть магические кавычки. Это правильно?
3 ответа
"AND gender = '{$user_array['gender']}'"
Это были обратные слеши, которые убивали его.
Или вы можете даже сделать:
"AND gender = '$user_array[gender]'"
Или же:
"AND gender = '" . $user_array['gender'] ."'"
Демо: http://codepad.org/lrJllI1K
Но все это вместе, вы должны использовать подготовленные запросы
В качестве альтернативы, вы можете сделать строку concat в PHP и сохранить ваш SQL в двойных кавычках, что может решить вашу проблему:
"AND gender = '" . $user_array['gender'] . "'...
Просто поместите весь запрос в double quotes
а потом делать как AND gender = '$user_array['gender']'