CodeIgniter MySQL一次更新多个表db-> update()db-> where()

时间:2013-02-06 00:07:12

标签: mysql codeigniter where-clause updating

我正在使用CodeIgniter并希望创建一个更新多个表的MySQL查询:

UPDATE TABLE1, TABLE2
SET 
    TABLE1.NAME='Teddy', 
    TABLE2.CLIENT_NOTES = 'Teddy is a good guy' 
WHERE VISITOR.ID = 1

如何使用CodeIgniter的 db-> update() db-> where()? 这可能吗?

感谢您查看此内容。 问候。

2 个答案:

答案 0 :(得分:3)

首先,您需要为表格添加别名,例如table1 as t1table2 as t2因此,您的最终查询将变为这样,

$this->db->set('t1.row','New value');
$this->db->set('t2.row','New value');
$this->db->where('t1.row','Your Condition');
$this->db->where('t2.row','Your Condition');
$this->db->update('table1 as t1, table2 as t2');

答案 1 :(得分:2)

你需要使用$ this-> db-> query()来处理更复杂的事情

在转义,安全性等方面没有区别.Active Record只是将不同的字符串格式化为单个查询字符串。