Php 如何锁定数据库表资源
我正在构建一个金融web应用程序,有点像电子银行应用程序。每当执行交易(如资金转账)时,都会扣除交易费用,并通过查询当前余额和累计扣除的费用,最后更新余额字段,更新系统帐户的收入/余额Php 如何锁定数据库表资源,php,mysql,codeigniter,Php,Mysql,Codeigniter,我正在构建一个金融web应用程序,有点像电子银行应用程序。每当执行交易(如资金转账)时,都会扣除交易费用,并通过查询当前余额和累计扣除的费用,最后更新余额字段,更新系统帐户的收入/余额 现在我的问题是,当多个交易(可能有200个)同时由不同帐户的不同用户执行时,系统中实际注册的收入余额与我预期的总收入余额之间存在差异。我相信这与服务器请求的异步性质或其他原因有关,如何防止这种情况发生???在codeigniter中存在事务。你可以参考 你可以用 $this->db->trans_st
现在我的问题是,当多个交易(可能有200个)同时由不同帐户的不同用户执行时,系统中实际注册的收入余额与我预期的总收入余额之间存在差异。我相信这与服务器请求的异步性质或其他原因有关,如何防止这种情况发生???在
codeigniter
中存在事务。你可以参考
你可以用
$this->db->trans_start();
您的查询/查询
$this->db->trans_complete();
我实际上使用的是codeigniter事务,但这种情况正在发生。我认为使用事务的目的是确保与数据库操作相关的进程完整执行,或者在一个步骤失败时回滚。为了更好地澄清我的问题,如果我使用java,我当然会在多个线程中执行每个事务,但会同步更新主帐户余额的一个函数。是的,因为CI在
trans\u strict
(严格模式)中运行所有查询,如果你想的话,你也可以把它弄错。我相信这就是你要找的。耶,我相信这会成功的。正在尝试