sql >> Databasteknik >  >> RDS >> Mysql

Stoppa och återgå om en av flera förberedda satser misslyckas

  1. sätt mysqli i undantagsläge genom att lägga till den här raden innan mysqli connect

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    
  2. Inkludera dina frågor i en transaktion
  3. Skapa din transaktion i ett try..catch-utdrag och lägg till ett återställande samtal.

Så koden skulle vara ungefär som

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$db = new mysqli(...);
...
try {
    $db->autocommit(FALSE);

    $db->address_table_insert_statement($firstName, $lastName, $companyName, $streetAddress, $streetAddress2, $streetAddress3, $city, $state, $zip, $country, $phone, $fax, $email, $date, $date);
    $addressId = mysqli_insert_id($db->connection);
    $db->address_table_insert_statement($firstName, $lastName, $companyName, $billingStreetAddress, $billingStreetAddress2, $billingStreetAddress3, $billingCity, $billingState, $billingZipCode, $billingCountry, $billingPhone, $billingFax, $billingEmail, $date, $date);
    $billingAdressId = mysqli_insert_id($db->connection);
    $db->account_table_insert_statement($active, $addressId, $billingAddressId, $dateCreated, $dateModified);

    $db->commit();
} catch (\Exception $e) {
    $db->rollback();
    throw $e;
}



  1. Hur implementerar man automatisk vyuppdatering så snart det finns förändringar i databasen i AngularJs?

  2. Konvertera mysql DATETIME-kolumnen till epoksekunder

  3. Hur man får handledarens namn istället för UserID + INNER JOIN i MYSQL

  4. mysqli_query() förväntar sig minst 2 parametrar, 1 ges in?