我坚持使用这个部分,我知道肯定有一种方法可以动态地做到这一点,但我只是不知道如何。
如何在收到搜索查询并知道搜索查询中有多少个数组后,动态创建SQL字符串?
以下是所示代码的部分内容。任何帮助表示赞赏,谢谢! =)
if ($arraycount ==2){
$searchSQL = $db->query("SELECT * FROM table WHERE field1 IN (SELECT field2 FROM $table WHERE field3 IN ('$array[0]','$array[1]'));");
}
else if ($arraycount ==3){
$searchSQL = $db->query("SELECT * FROM table WHERE field1 IN (SELECT field2 FROM $table WHERE field3 IN ('$array[0]','$array[1]','$array[2]'));");
}
答案 0 :(得分:1)
您可以使用implode
来连接数组的值。
$sql = "SELECT * FROM table WHERE field1
(SELECT field2 FROM $table
WHERE field3 IN ('".implode("','", $array)."')";
$searchSQL = $db->query($sql);
这是 Codepad 演示。
答案 1 :(得分:0)
所有归功于@peterm,但有额外的安全措施(如果你使用MySQL)
... implode("','", array_map("mysql_real_escape_string", $array))