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']'

Другие вопросы по тегам