-
-
Save nciske/3b6b6367fdb5fa0dd26e91042b4ea309 to your computer and use it in GitHub Desktop.
MySQL database transaction, using the WordPress database object $wpdb. Requires the InnoDB table format.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
global $wpdb; | |
// Start Transaction | |
$wpdb->query( "START TRANSACTION" ); | |
// Do some expensive/related queries here | |
//$wpdb->query("DELETE FROM table WHERE form_id = '1' "); | |
//$wpdb->query("DELETE FROM data WHERE form_id = '1' "); | |
// set $error variable value in error handling after $wpdb modifications | |
if ($error) { | |
// Error occured, don't save any changes | |
$wpdb->query( "ROLLBACK" ); | |
} else { | |
// All ok, save the changes | |
$wpdb->query( "COMMIT" ); | |
} | |
?> |
You don't need this check if ($error) {
. The $wpdb->query( "COMMIT" );
will automatically calls ROLLBACK
in case some command inside the transactions will fail.
So code can be:
<?php
global $wpdb;
// Start Transaction
$wpdb->query( "START TRANSACTION" );
// Do some expensive/related queries here
//$wpdb->query("DELETE FROM table WHERE form_id = '1' ");
//$wpdb->query("DELETE FROM data WHERE form_id = '1' ");
// set $error variable value in error handling after $wpdb modifications
$wpdb->query( "COMMIT" );
?>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Nice. Could you provide an example of how to do this below?
TIA