开发者

CodeIgniter - implode/query binding causing unwanted string

开发者 https://www.devze.com 2023-02-07 14:16 出处:网络
I have the following query attempting an update in CodeIgniter: $sql = \"UPDATE fanout.manual_data SET call_leader_id = ?

I have the following query attempting an update in CodeIgniter:

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

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

The implode is creating a string of all the IDs in my array. However, that is resulting in the query looking like:

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

W开发者_Go百科hen what I need is:

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

Only difference, is the single quotes surrounding the string of IDs. Is this something I need to do myself and skip over CI's query bindings (http://codeigniter.com/user_guide/database/queries.html) or is something CI can handle and I'm just missing a step?

Thanks.


I don't think you can skip that behavior. You're technically passing a string, so CI interprets it as such and simply surrounds it with quotes.

I think you're better off simply concatenating the $empIDs by hand (e.g. using a foreach loop), escaping them with $this->db->escape() in case you wanna be sure.

0

精彩评论

暂无评论...
验证码 换一张
取 消