Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zatrzymaj i przywróć, jeśli jedna z wielu przygotowanych instrukcji nie powiedzie się

  1. przełącz mysqli w tryb wyjątków, dodając tę ​​linię przed mysqli connect

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    
  2. Opakuj zapytania w transakcję
  3. Opakuj transakcję w wyciąg try..catch i dodaj wewnątrz wywołanie wycofania.

Więc kod będzie wyglądał jak

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać MySQL z Deno i Oak?

  2. Kłopotliwy błąd Ruby/MySQL:nieprawidłowy pakiet:niezgodność numeru sekwencji

  3. Jak wybrać losowo jeden rząd biorąc pod uwagę wagę?

  4. Dane ciągu, skrócone do prawej:1406 Dane za długie dla kolumny

  5. Załaduj dane z bazy danych MySQL do pól tekstowych HTML po kliknięciu przycisku