首页 > 解决方案 > 无法在 Codeigniter 中更新 RAW 查询

问题描述

我的数据库中有一些复杂的查询要更新,因此我用它$this->db->query($sql, array($userId));来更新我的表,但表没有得到更新。

更新查询如下:

UPDATE users usr1
SET dummy_id= (SELECT concat('D',UPPER(c.flag_lang), LPAD(usr1.id , 7, 0)) new_did FROM country c,desktop d
WHERE
usr1.id=d.user_id
AND d.country_id=c.id
and user_type='dummy')
WHERE usr1.user_type='dummy' and usr1.id = ?

如果我通过 MySql 客户端执行上述相同的查询,那么我的表正在更新。

但是,如果我在活动记录中将查询写为:

$this->db->where('id', $userId);
$this->db->set('dummy_id', 'CUSTOM');
$this->db->update('users');

该表确实得到了正确更新,但是,由于查询很复杂,我必须进行 RAW 查询,但不知何故它不起作用。

请求协助。

标签: phpmysqlcodeignitercodeigniter-3

解决方案


推荐阅读