Mysql
 sql >> база данни >  >> RDS >> Mysql

Спрете и се върнете, ако един от множеството подготвени оператори се провали

  1. поставете mysqli в режим на изключение, като добавите този ред преди mysqli да се свърже

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    
  2. Обвийте заявките си в транзакция
  3. Обвийте транзакцията си в оператор try..catch и добавете вътре извикване за връщане.

Така че кодът би бил нещо като

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. Научете се да използвате базата данни MySQL

  2. Каква е разликата между utf8_general_ci и utf8_unicode_ci?

  3. PHP Проверка за NULL

  4. Алгоритъм, който търси свързани елементи въз основа на често срещани тагове

  5. Разлика в MySQL JOIN срещу LEFT JOIN