丢失更新是MySQL常见的问题,要解决此问题,应将选择查询编辑为像这样的更新查询选择
select * from users where id = 1 FOR UPDATE
防止其他用户同时在同一行上工作。我想通过在Codeigniter中将此查询编辑为更新查询来选择
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;
}
}
我可以使用上面的简单查询,但是更喜欢是否可以转换模型查询。
谢谢
答案 0 :(得分:3)
似乎您想在Mysql中获得行级锁定 并且codeigniter查询构建器不允许操纵其方法来生成自定义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();
}