是否可以使用Codeigniter的Active Record更新JOINed表?

时间:2012-02-13 00:32:49

标签: php mysql codeigniter activerecord join

这是我想做的事情

function edit_save($data, $post_id, $user_id)
{
    $this->db->where('post.user_id', $user_id);
    $this->db->where('post.post_id', $post_id);
    $this->db->join('data', 'post.data_id_fk = data.data_id', 'left');
    $this->db->update('post', $data);
}

'post'表格需要与'data'保持联系。

当我运行上面的操作时,我收到一条SQL错误,指出找不到'data'表中的一个字段。

有什么建议吗?

更多信息

这是生成的SQL查询

UPDATE `post` 
SET `data_value` = '111', `data_date` = '2012-02-13', `post_text` = '111' 
WHERE `post_stream_id` =  '5' 
    AND `post_id` =  '18'

这是错误

Unknown column 'data_value' in 'field list'

它不显示JOIN语句。

1 个答案:

答案 0 :(得分:3)

尝试此活动记录查询以使用连接进行更新:

function edit_save($data, $post_id, $user_id)
{
    $this->db->set($data)
    $this->db->where('post.user_id', $user_id);
    $this->db->where('post.post_id', $post_id);
    $this->db->where('post.data_id_fk = data.data_id');
    $this->db->update('post, data');
}