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

PDO Множество заявки:транзакция за извършване и връщане назад

Да, подходът ви е правилен. Използване на Try...catch може да доведе до по-чист и по-четлив код в някои случаи, но цялостният ви подход е добър.

Ако вашият кодов фрагмент е от функция, която обработва заявки от DB и не много друго, вероятно бих променил подхода:

// Begin Transaction
$this->db->beginTransaction();

// Fire Queries
if(!$query_one->execute()){
    $this->db->rollback();
    // other clean-up goes here
    return;
}

if(!$query_two->execute()){
    $this->db->rollback();
    // other clean-up goes here
    return; 
}

$this->db->commit();

Разбира се, ако се нуждаете от много почистване, преди да можете да return , тогава оригиналният ви подход е по-добър. Особено в тези случаи бих разгледал използването на PDO::ERRMODE_EXCEPTION. Това има някои допълнителни предимства, като изключения, които автоматично отменят транзакцията, освен ако не бъдат уловени.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да създам уникална php страница за всеки ред в база данни на mysql

  2. Многократна производителност на MySQL вмъкване

  3. Външни ключове - Какво правят за мен?

  4. Преобразувайте колоната varchar към дата в mysql на ниво база данни

  5. C# се свързва с mysql чрез потребителски контрол