If you are stuck using a database, such as MySQL, that does not support transactions, you may find that on a particular script you need to do several insert/update queries that either all, or none, must be run.

One good idea is to put this at the very top of your script:

// Prevent user from aborting script $old_abort = ignore_user_abort(true);

And then this at the bottom:

// Reset abort setting ignore_user_abort($old_abort);

This will stop the user pressing 'Stop' from ruining your script!