2011-11-23 66 views
0

我试图做到这一点,但它返回null?建立一个SQL查询字符串PHP参数

$query_1=$field_name[0]."='{".$field_value[0]."}'"; 

然后

getType = mysql_query("SELECT * FROM wines WHERE $query_1") or die(mysql_error()); 

而如果我这样做:

$getType = mysql_query("SELECT * FROM wines WHERE $field_name[0]='{$field_value[0]}'") or die(mysql_error()); 

它工作正常。

这是甚至可能的,还是我失去了一些东西太明显了? 预先感谢您!

+1

的解决方案是在下面的答案,但你应该知道,有SQL注入的高发人群,如果你做这个办法。请直接在SQL查询中使用它之前清理您的输入! – Wookai

回答

1

你正在构建了错​​误的方式。你不应该在SQL查询中使用大括号(或任何其他字符串)。改为连接您的查询。

像这样:

$query_1=$field_name[0]."='".$field_value[0]."'"; 

哦,你错过了查询前一个$,这就是为什么它的空。

+0

谢谢,这是 – Shpat

+0

不,我有那一个,我只是没有复制它的权利 – Shpat

1

这个工作对我来说:

 
$field_name[0] = "test"; 
$field_value[0] = "someting"; 
$query_1=$field_name[0]."='".$field_value[0]."'"; 
echo ("SELECT * FROM wines WHERE $query_1") or die(mysql_error()); 

希望它可以帮助