-1

我被这部分困住了,我知道肯定有办法动态地做到这一点,但我只是不知道怎么做。

在收到搜索查询并知道搜索查询中有多少个数组后,我如何动态创建 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]'));");
}
4

2 回答 2

1

您可以使用implode来连接数组的值。

$sql = "SELECT * FROM table WHERE field1 
        (SELECT field2 FROM $table 
          WHERE field3 IN ('".implode("','", $array)."')";
$searchSQL = $db->query($sql);

这是键盘演示。

于 2013-06-04T02:54:55.740 回答
0

所有功劳归功于@peterm,但有额外的安全措施(如果你使用 MySQL)

... implode("','", array_map("mysql_real_escape_string", $array))
于 2013-06-04T03:04:44.657 回答