Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter$此->;db->;trans_begin();如果未提交或回滚并且页面被刷新,它将锁定数据库_Php_Mysql_Codeigniter_Transactions - Fatal编程技术网

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