Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Dừng và hoàn nguyên nếu một trong nhiều câu lệnh đã chuẩn bị không thành công

  1. đặt mysqli ở chế độ ngoại lệ bằng cách thêm dòng này trước khi kết nối mysqli

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    
  2. Kết hợp các truy vấn của bạn trong một giao dịch
  3. Kết hợp giao dịch của bạn trong một câu lệnh try..catch và thêm lệnh gọi quay lại bên trong.

Vì vậy, mã sẽ giống như

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. nếu điều kiện elseif trong truy vấn mysql

  2. Làm cách nào để in truy vấn SQL được thực thi sau khi DBI của Perl điền vào chỗ dành sẵn?

  3. Xác thực với tư cách là một người dùng cụ thể trong MySQL

  4. Nối nhiều hàng trong SQL

  5. cách lấy danh sách các tên Lược đồ cơ sở dữ liệu của MySql bằng cách sử dụng java JDBC