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

Các giao dịch cơ sở dữ liệu trong Zend Framework:Chúng có bị cô lập không?

Giả sử bạn đang sử dụng công cụ InnoDB cho các bảng mà bạn sẽ phát hành giao dịch trên:

Nếu yêu cầu là trước tiên bạn cần đọc hàng và khóa riêng hàng đó, trước khi cập nhật hàng, bạn nên phát hành SELECT ... FOR UPDATE truy vấn. Một cái gì đó như:

$db->beginTransaction();
try
{
    $select = $db->select()
                 ->forUpdate() // <-- here's the magic
                 ->from(
                     array( 'a' => 'yourTable' ),
                     array( 'your', 'column', 'names' )
                 )
                 ->where( 'someColumn = ?', $whatever );

    $result = $this->_adapter->fetchRow( $select );

    /*
      alter data in $result
      and update if necessary:
    */
    $db->update( 'yourTable', $result, array( 'someColumn = ?' => $whatever ) );

    $db->commit();
}
catch( Exception $e )
{
    $db->rollBack();
}

Hoặc chỉ cần phát hành 'raw' SELECT ... FOR UPDATEUPDATE Câu lệnh SQL trên $db tất nhiên.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cài đặt trình điều khiển QMYSQL

  2. Table không hỗ trợ tối ưu hóa, thay vào đó, thực hiện tạo lại + phân tích nghĩa là gì?

  3. Làm cách nào để ngăn chặn việc tiêm sql bằng php và mysql

  4. Cách truy xuất các bản ghi đối sánh trên nhiều bảng trong MySQL

  5. Cấu hình mysql dừng ở máy chủ khởi động