codeigniter 3使用单个查询更新多个表

时间:2018-04-17 06:49:35

标签: php codeigniter-3

我正在关注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.6PHP-5.6.12

在codeigniter3中是否还有其他方法可以使用单个查询更新多个表?

2 个答案:

答案 0 :(得分:0)

您必须检查这两个表的外键。 例如:

$this->db->where('tbl1.id = tbl2.id');

此处,id应该作为彼此表的外键

答案 1 :(得分:0)

如果要更新单个列,那么对特定表使用$this->db->where() 2次没有意义,所以最好只使用它一次。如果你使用外键来关联2表,那么同时更新两个表{ {1}}。希望这会起作用