如何在PHP中的同一mysqli_查询中使用for循环、IN运算符
我想创建一个mysqli_查询,它将返回一个基于ID列表的数据库元组 在SQL中,查询如下:如何在PHP中的同一mysqli_查询中使用for循环、IN运算符,php,mysql,for-loop,in-operator,Php,Mysql,For Loop,In Operator,我想创建一个mysqli_查询,它将返回一个基于ID列表的数据库元组 在SQL中,查询如下: SELECT * FROM `tale_name` WHERE `id` in(1,2,3,4); 假设id放在一个名为$id\u array的PHP数组中,那么我如何才能在PHP代码中编写相同的查询呢 首先,我尝试了以下代码(但我知道这不是真的): mysqli\u query($this->conn,“从'tale\u name'中选择*WHERE `id`in(“.for($i=0;$i
SELECT * FROM `tale_name` WHERE `id` in(1,2,3,4);
假设id放在一个名为$id\u array的PHP数组中,那么我如何才能在PHP代码中编写相同的查询呢
首先,我尝试了以下代码(但我知道这不是真的):
mysqli\u query($this->conn,“从'tale\u name'中选择*WHERE
`id`in(“.for($i=0;$i
似乎for循环不能与PHP中的mysqli_查询结合使用。。。
有什么建议吗?你可以用
用法:string内爆(string$glue,array$parties)
echo
功能用于输出。您需要构建一个变量,然后将其连接到字符串。至少应该将其强制转换为int
,以防止SQL注入,不过最好的做法是参数化查询
$ids ='';
for ($i = 0; $i < count($id_array); $i++){
$ids .= ((int)$id_array[$i]) . ', ';
}
$ids = rtrim($ids, ', ');
echo "SELECT * FROM `tale_name` WHERE `id` in ({$ids})";
然后对该查询使用prepare
、bind_param
和execute
mysqli_query($this->conn, "SELECT * FROM `tale_name` WHERE `id` in (". implode(',', $id_array) .")");
$ids ='';
for ($i = 0; $i < count($id_array); $i++){
$ids .= ((int)$id_array[$i]) . ', ';
}
$ids = rtrim($ids, ', ');
echo "SELECT * FROM `tale_name` WHERE `id` in ({$ids})";
$placeholders = str_repeat('?, ', count($id_array));
$placeholders = rtrim($placeholders, ', ');
echo "SELECT * FROM `tale_name` WHERE `id` in ({$placeholders})";