2011-11-23 67 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()); 

希望它可以幫助