gpt4 book ai didi

php - 使用带有字符串数组或字符串列表的 IN 子句的 CodeIgniter 查询绑定(bind)

转载 作者:行者123 更新时间:2023-12-04 12:26:41 25 4
gpt4 key购买 nike

下面是一个失败的例子。我已经尝试了几种方法来将下面的 $arrayOfIds 转换为 id IN (?) 的正确语法,但没有成功。如果我不查询绑定(bind),它就可以工作。

注意:我们使用 Active Record。

// this is actually being passed in as argument
$arrayOfIds = array('A0000-000000000001','B0000-000000000001','C0000-000000000001');

$params = array();
array_push($params,1); // for the status
array_push($params, "'" . implode("','",$arrayOfIds) . "'"); // for the id in

$sql = "SELECT name FROM my_table WHERE status = ? AND id IN (?) ";

$query = $this->db->query($sql,$params);

最佳答案

您需要以不同的方式构建params 数组,并添加与arrayOfIds 大小一样多的问号。

编辑:问号根据数组大小动态生成。

$arrayOfIds = array('A0000-000000000001','B0000-000000000001','C0000-000000000001');  

$params = array();
array_push($params, 1);

$params = array_merge($params, $arrayOfIds);
$in_string = str_replace(' ', ',', trim(str_repeat("? ", count($arrayOfIds))));

$sql = "SELECT name FROM my_table WHERE status = ? AND id IN (".$in_string.")";

$query = $this->db->query($sql, $params);

关于php - 使用带有字符串数组或字符串列表的 IN 子句的 CodeIgniter 查询绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19758233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com