在查询中使用爆炸变量而无需循环

时间:2017-11-18 11:57:30

标签: php mysql

如何根据爆炸变量(数组)运行具有多个where子句的查询?

$original = "123,44,55,66";
$exploded = explode(",", $original);
foreach($exploded as $var)
{
    $query = $mysqli->query("SELECT name FROM my_table WHERE id = $var");
}

我不想为查询本身使用foreach循环,因为它使用了大量资源并且大大减慢了页面的加载时间,那么如何实现呢?

2 个答案:

答案 0 :(得分:3)

您可以在查询中进行检查,这样您就可以获得没有foreach循环的结果

查询:

$mysqli->query("SELECT name FROM my_table WHERE id in (123,44,55,66) ");

答案 1 :(得分:3)

根据您的代码,每次您的查询被覆盖时,您将获得最后选择的数据。您可以使用IN运算符获得结果 相反,试试这个: -

$original = "123,44,55,66";
$query = $mysqli->query("SELECT name FROM my_table WHERE id in ($original)");