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

Cách sử dụng các giao dịch MySQL đúng cách

Đặt cược tốt nhất của bạn là mô phỏng các giao dịch lồng nhau. Để làm điều này, hãy viết một trình bao bọc để truy cập cơ sở dữ liệu của bạn. (Pseduocode)

class MyMysqli {
    protected $realDb;
    protected $transaction_count =0;

    public function __construct ($host, $username , $passwd, $dbname){
        $this->realDb = new Mysqli($host, $username, $passwd, $dbname);
    }
    public function __get($property){
        return $this->realDb->$property;
    }

    public function __set($property, $value){
        return $this->realDb->$property = $value;
    }

    public function __call($method, $args){
        return call_user_func_array(array($this->realDb, $method), $args);
    }

    // overload begin_transaction, commit and rollback
    public function begin_transaction(){
         $this->transaction_count++;
         if ($this->transaction_count == 1){
               $this->realDb->begin_transaction();
         }
    }
    public function commit(){
         $this->transaction_count--;
         if($this->transaction_count == 0){
              $this->realDb->commit();
         }
    }

    public function rollback(){
         throw new Exception("Error");
    }



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Số ngày trong tuần / cuối tuần của MySQL - Phần II

  2. Hợp nhất các hàng trong cùng một id thành mảng

  3. MySQL Views và sử dụng chỉ mục

  4. MySQL INNER JOIN chỉ chọn một hàng từ bảng thứ hai

  5. Đặt hàng Chọn dựa trên kết quả tham gia (Sắp xếp cuộc trò chuyện theo tin nhắn cuối cùng được gửi)