我正在使用 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()做到这一点?这可能吗?
谢谢你看看这个。问候。
我正在使用 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()做到这一点?这可能吗?
谢谢你看看这个。问候。
首先你需要给你的表起别名,table1 as t1
所以table2 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');
您需要将 $this->db->query() 用于更复杂的事情
转义、安全等方面没有区别。Active Record 只是将不同的字符串格式化为单个查询字符串。