有没有办法确保以下代码一次性执行(因此,如果访问者在键盘上按下转义键或关闭浏览器,它不会只执行一半。重要的是它们全部一次性完成或根本不执行)。
mysql_query($queryone);
mysql_query($querytwo);
unlink($file);
unlink($thumb);
mysql_query($querythree);
感谢所有回复和示例代码会很好。
如果用户停止浏览器,这些语句很可能都将执行,但为了确保它们执行,请ignore_user_abort(true);
在这些语句之前添加以告诉 PHP 在检测到客户端断开连接时不要终止。
请参阅php.ini
设置ignore_user_abort。这将允许脚本运行完成,无论客户端是否仍然连接。
进一步阅读:
http://www.php.net/manual/en/features.connection-handling.php
您可能需要 mysql 事务。当并非所有查询都成功时,这些功能(提交、回滚等)将撤消查询。 mysql事务
因此,如果访问者在键盘上按 Escape 或关闭浏览器,它不会只执行一半
关闭浏览器或按转义键(或任何键)的访问者不会影响服务器上运行的脚本。无论客户端做什么,您的脚本都将完成运行。
重要的是它们都是一口气完成的,或者根本没有
你绝对应该看看MySQL Transactions。您可能还想考虑将事务放在存储过程中。