0

有没有办法确保以下代码一次性执行(因此,如果访问者在键盘上按下转义键或关闭浏览器,它不会只执行一半。重要的是它们全部一次性完成或根本不执行)。

mysql_query($queryone);

mysql_query($querytwo);

unlink($file);

unlink($thumb);

mysql_query($querythree);

感谢所有回复和示例代码会很好。

4

3 回答 3

1

如果用户停止浏览器,这些语句很可能都将执行,但为了确保它们执行,请ignore_user_abort(true);在这些语句之前添加以告诉 PHP 在检测到客户端断开连接时不要终止。

请参阅php.ini设置ignore_user_abort。这将允许脚本运行完成,无论客户端是否仍然连接。

进一步阅读:

http://www.php.net/manual/en/features.connection-handling.php

于 2012-08-13T21:24:24.593 回答
1

您可能需要 mysql 事务。当并非所有查询都成功时,这些功能(提交、回滚等)将撤消查询。 mysql事务

于 2012-08-13T21:28:18.470 回答
1

因此,如果访问者在键盘上按 Escape 或关闭浏览器,它不会只执行一半

关闭浏览器或按转义键(或任何键)的访问者不会影响服务器上运行的脚本。无论客户端做什么,您的脚本都将完成运行。

重要的是它们都是一口气完成的,或者根本没有

你绝对应该看看MySQL Transactions。您可能还想考虑将事务放在存储过程中。

于 2012-08-13T21:45:29.020 回答