我正在关注this以使用单个查询更新多个表,但这不适用于我的情况。
我的查询如下:
$this->db->set('tbl1.col1', $val1);
$this->db->where('tbl1.col2', $val2);
$this->db->where('tbl1.col3', $val3);
$this->db->set('tbl2.col1', $val1);
$this->db->where('tbl2.col2', $val2);
$this->db->where('tbl2.col3', $val3);
$this->db->update('table1 as tbl1, table2 as tbl2');
我收到的错误是:
Table 'database.table1 as tbl1, table2' doesn't exist
这可能不适用于新版本的codeigniter。
我正在使用CI-3.1.6
和PHP-5.6.12
在codeigniter3中是否还有其他方法可以使用单个查询更新多个表?
答案 0 :(得分:0)
您必须检查这两个表的外键。 例如:
$this->db->where('tbl1.id = tbl2.id');
此处,id
应该作为彼此表的外键。
答案 1 :(得分:0)
如果要更新单个列,那么对特定表使用$this->db->where()
2次没有意义,所以最好只使用它一次。如果你使用外键来关联2表,那么同时更新两个表{ {1}}。希望这会起作用