如何将这个codeigniter查询转换为select进行更新

k3bvogb1  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(293)

lostupdate是mysql常见的问题,要解决这个问题,应该将select查询编辑成selectforupdate查询,如下所示

select * from users where id = 1 FOR UPDATE

防止其他用户同时在同一行上工作。我想在codeigniter中通过将这个查询编辑为select for update查询来实现这一点

public function get_row_data($id)
{

    $this->db->where('id',$id);

    $result = $this->db->get('users');

    if($result && $result->num_rows() > 0)
    {
        return $result->row();
    }
    else
    {
        return false;
    }
}

我可以使用上面的简单查询,但更喜欢模型查询是否可以转换。
谢谢

bqucvtff

bqucvtff1#

似乎您希望在mysql中获得行级锁定,codeigniter query builder不允许操作其方法来生成自定义sql查询

$this->db->trans_begin();
$this->db->query('you query goes here');
// other task .....
if ($this->db->trans_status() === FALSE) {
    $this->db->trans_rollback();
} else {
    $this->db->trans_commit();
}

相关问题