Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Hentikan dan kembalikan jika salah satu dari beberapa pernyataan yang disiapkan gagal

  1. letakkan mysqli dalam mode pengecualian dengan menambahkan baris ini sebelum mysqli terhubung

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    
  2. Bungkus pertanyaan Anda dalam transaksi
  3. Bungkus transaksi Anda dalam pernyataan try..catch dan tambahkan panggilan rollback di dalamnya.

Jadi kodenya akan menjadi seperti

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. Koneksi MySQL tidak berfungsi

  2. Entitas Kuat vs. Lemah MYSQL

  3. Menghapus tabel dengan mysqli_multi_query()

  4. Menu bertingkat dari catatan basis data

  5. Mengapa kode pdo::mysql ini mogok di windows?