Php Codeigniter$此->;db->;trans_begin();如果未提交或回滚并且页面被刷新,它将锁定数据库
我有一个页面,其中Php Codeigniter$此->;db->;trans_begin();如果未提交或回滚并且页面被刷新,它将锁定数据库,php,mysql,codeigniter,transactions,Php,Mysql,Codeigniter,Transactions,我有一个页面,其中$this->db->trans_begin()并完成一些插入。然后打开一个模式,要求用户确认,如果用户确认,则提交事务。但是如果模式在提交或回滚之前打开,我会刷新浏览器。在执行相同的操作时,当表被锁定时,浏览器会挂起3到4次 有人知道如果在codeigniter中打开事务并刷新页面,我可以在启动新事务之前关闭它吗?是的,这就是事务的目的。您必须关闭或回滚 交易应尽可能短时间开放,因为它们可能会阻止其他活动。在等待用户反馈时,您当然不应该让事务保持打开状态 询问用户是否确定,然
$this->db->trans_begin()使用代码>并完成一些插入。然后打开一个模式,要求用户确认,如果用户确认,则提交事务。但是如果模式在提交或回滚之前打开,我会刷新浏览器。在执行相同的操作时,当表被锁定时,浏览器会挂起3到4次
有人知道如果在codeigniter
中打开事务并刷新页面,我可以在启动新事务之前关闭它吗?是的,这就是事务的目的。您必须关闭或回滚
交易应尽可能短时间开放,因为它们可能会阻止其他活动。在等待用户反馈时,您当然不应该让事务保持打开状态
询问用户是否确定,然后只有当他们按“ok”开始事务时,才开始工作并提交。在PHP中,如何在打开的事务上获得用户响应?如果脚本执行结束,则应关闭打开的mysql连接,并自动中止打开的事务。您的表格使用什么表格引擎。典型的是MyISAM和InnoDB。您使用哪种连接类型,持久/非持久?我的第一个猜测是您正在使用持久连接。在脚本结束之前,请使用非持久性设置或中止挂起的事务。请参阅将pconnect
的配置值更改为FALSE
。