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

Giao dịch Codeigniter

Sử dụng transactions nghĩa là hỗ trợ cơ sở dữ liệu để chèn dữ liệu một cách an toàn. Vì vậy, trong Codeigniter, chúng tôi viết mọi chức năng liên quan đến cơ sở dữ liệu trong Mô hình không có trong Bộ điều khiển. . Và trong mã thứ hai của bạn (mã này không hoạt động), bạn đã trỏ mô hình vào đó. ( utils ). Vì vậy, đơn giản, tôi chắc chắn rằng điều này sẽ không hoạt động. Bởi vì nó không phải là một dữ liệu chèn với mô hình và bộ điều khiển song song. Giao dịch phải được mã hóa trong Mô hình ( Tôi sẽ viết trong Mô hình trong câu trả lời của mình ).

Tải cả nội dung này

  1. Thư viện Cơ sở dữ liệu
  2. Lớp người mẫu
  3. Trình trợ giúp URL
  4. Phiên

Giả định

Trong mã của bạn, bạn đã sử dụng $data$test dưới dạng mảng. Vì vậy, tôi giả sử có hai mảng để chèn và cập nhật dữ liệu.

Tập dữ liệu của bạn

$data = array(
   'title' => 'My title' ,
   'name' => 'My Name' ,
   'date' => 'My date'
);

$id = 007;
$test = array(
   'title' => $title,
   'name' => $name,
   'date' => $date
);

Mã của bạn

$this->db->trans_start(); # Starting Transaction
$this->db->trans_strict(FALSE); # See Note 01. If you wish can remove as well 

$this->db->insert('table_name', $data); # Inserting data

# Updating data
$this->db->where('id', $id);
$this->db->update('table_name', $test); 

$this->db->trans_complete(); # Completing transaction

/*Optional*/

if ($this->db->trans_status() === FALSE) {
    # Something went wrong.
    $this->db->trans_rollback();
    return FALSE;
} 
else {
    # Everything is Perfect. 
    # Committing data to the database.
    $this->db->trans_commit();
    return TRUE;
}

Ghi chú

  1. Theo mặc định Codeigniter chạy tất cả các giao dịch ở Chế độ nghiêm ngặt. Khi chế độ nghiêm ngặt được bật , nếu bạn đang chạy nhiều nhóm giao dịch, nếu một nhóm không thành công, tất cả các nhóm sẽ được khôi phục lại. Chế độ ifstrict bị tắt , mỗi nhóm được đối xử độc lập , nghĩa là thất bại của một nhóm sẽ không ảnh hưởng đến nhóm khác .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nhiều thứ hạng trong một bảng

  2. Cách lập lịch một thủ tục được lưu trữ trong MySQL

  3. Ví dụ về DATE () - MySQL

  4. Truy vấn SQL để tạo cơ sở dữ liệu trong MySQL

  5. Thủ tục lưu trữ MySQL với các tham số