0

我有一个 mysql 查询,它使用数组中的值作为 WHERE 语句的一部分。我应该如何包含这个变量?

这是sql: "AND gender = '{$user_array[\"gender\"]}'"

PHP 返回此错误:Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting T_STRING

我已经magic_quotes开启。我看过一些帖子建议将数组的值设置为另一个变量,但如果我有魔术引号,这似乎是不必要的。它是否正确?

4

3 回答 3

0

只需将整个查询放入double quotes然后执行AND gender = '$user_array['gender']'

于 2012-12-26T20:11:21.313 回答
0
"AND gender = '{$user_array['gender']}'"

是反斜杠杀死了它。

或者你甚至可以这样做:

"AND gender = '$user_array[gender]'"

或者:

"AND gender = '" . $user_array['gender'] ."'"

演示:http ://codepad.org/lrJllI1K

但是所有这些放在一起,您应该使用准备好的查询

于 2012-12-26T20:11:26.467 回答
0

作为替代方案,您可以在 PHP 中执行字符串 concat 并将 SQL 放在双引号中,这可能会解决您的问题:

"AND gender = '" . $user_array['gender'] . "'...
于 2012-12-26T20:13:43.190 回答