php - 如何转换此 codeigniter 查询以选择更新

标签 php mysql codeigniter select

丢失更新是一个常见的 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;
    }
}

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

谢谢

最佳答案

看来你想在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();
}

关于php - 如何转换此 codeigniter 查询以选择更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51797674/

相关文章:

php - Laravel 查询生成器 - groupBy、map、sortBy/orderBy

mysql - 如何通过使用临时文件排序来避免排序

php - cpanel升级到mariadb后我无法连接到数据库

php - 迁移的意外行为 :refresh command laravel

php - 如何在数据库中插入一个或多个以逗号分隔的链接?

php - 如何显示来自mysql db的多行逗号分隔值

mysql - 分解大型 SQL 命令/性能 (MySQL)

mysql - 如何在sql中级联3个表

php - Codeigniter 不执行删除查询

php - 使用 codeigniter 进行动态表单存储