gpt4 book ai didi

mysql - CodeIgniter - 内爆/查询绑定(bind)导致不需要的字符串

转载 作者:行者123 更新时间:2023-11-29 00:58:40 28 4
gpt4 key购买 nike

我有以下查询尝试在 CodeIgniter 中更新:

$sql = "UPDATE fanout.manual_data
SET call_leader_id = ?
WHERE id IN (?)";

$q = $this->db->query($sql, array($leaderID, implode(", ", $empIDs)));

内爆正在我的数组中创建一个包含所有 ID 的字符串。但是,这导致查询看起来像:

UPDATE fanout.manual_data SET call_leader_id = '55993' WHERE id IN ('57232, 0097726, 0076034');

当我需要的是:

UPDATE fanout.manual_data SET call_leader_id = '55993' WHERE id IN (57232, 0097726, 0076034);

唯一的区别是 ID 字符串周围的单引号。这是我需要自己做的事情并跳过 CI 的查询绑定(bind) (http://codeigniter.com/user_guide/database/queries.html) 还是 CI 可以处理而我只是错过了一步?

谢谢。

最佳答案

我认为您无法跳过该行为。从技术上讲,您传递的是一个字符串,因此 CI 会这样解释它并简单地用引号将其括起来。

我认为您最好手动连接 $empIDs(例如使用 foreach 循环),然后使用 $this->db 转义它们->escape() 以防万一。

关于mysql - CodeIgniter - 内爆/查询绑定(bind)导致不需要的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4854710/

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