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

Jak korzystać z transakcji w php/mysql

Po prostu wydaj mysql_query('START TRANSACTION'); i sprawdź, czy nie ma błędów na każdej z twoich wstawek. Jeśli jeden z nich się nie powiedzie, natychmiast wyślij ROLLBACK bez wykonywania pozostałych zapytań. Jeśli wszystko pójdzie dobrze z nimi wszystkimi, wyślij ZATWIERDZENIE.

Łatwiej jest umieścić je w bloku try-catch, aby uniknąć używania zbyt wielu poziomów zagnieżdżania z if-else.

// START TRANSACTION
try{
    // INSERT 1
    if(failed)
        throw new Exception();

    // INSERT 2
    if(failed)
        throw new Exception();

    // INSERT 3
    if(failed)
        throw new Exception();

    // COMMIT
}
catch(Exception $e){
    // ROLLBACK
}

Możesz również przyjrzeć się rozszerzeniu PDO PHP . Transakcje są częścią jego funkcji.



  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 przekonwertować plik Excel do bazy mysql?

  2. Co może prowadzić do problemu z nieznanym obiektem w pliku kopii zapasowej podczas przywracania kopii zapasowej bazy danych MySQL?

  3. mysqldump z utf8 nie może wyeksportować prawidłowego ciągu emoji

  4. Rails 3, zmiana pola w modelu z typu string na datetime

  5. Bardzo długi koniec zapytania w losowych momentach