0

以下のコードが一度に実行されるようにする方法はありますか(したがって、訪問者がキーボードでエスケープを押すか、ブラウザーを閉じると、途中で実行されるだけではありません。すべてを一度に実行するか、まったく実行しないことが重要です。 )。

mysql_query($queryone);

mysql_query($querytwo);

unlink($file);

unlink($thumb);

mysql_query($querythree);

すべての返信に感謝し、サンプルコードがあればいいでしょう。

4

3 に答える 3

1

mysqlトランザクションが必要になる場合があります。これらの関数(コミット、ロールバックなど)は、すべてのクエリが成功したわけではない場合、ブレーキダウン時にクエリを元に戻します。 Mysqlトランザクション

于 2012-08-13T21:28:18.470 に答える
1

so if the visitor presses escape on keyboard or closes browser, it won't just execute half way

The visitor closing the browser or pressing escape (or any key for that matter) will have no effect on the script running on your server. Your script will finish running regardless of what the client does.

its important they are all done in one go or none at all

You should definitely take a look at MySQL Transactions. You may also want to consider putting the transaction in a stored procedure.

于 2012-08-13T21:45:29.020 に答える
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 に答える