2012-04-07 31 views

回答

2

不幸的是,我不確定有沒有辦法用Zend_Db來做這樣的事情。手冊中說setTransactionIsolationLevel()只能與Microsoft SQL Server adapter一起使用。

您可以使用setTransactionIsolationLevel()爲當前連接設置隔離級別爲 。該值可以是SQLSRV_TXN_READ_UNCOMMITTED, SQLSRV_TXN_READ_COMMITTED,SQLSRV_TXN_REPEATABLE_READ, SQLSRV_TXN_SNAPSHOT或SQLSRV_TXN_SERIALIZABLE。

似乎並沒有Zend_Db API實現一種管理事務隔離級別的方法,唯一的方法是編寫自己的SQL語句並根據您使用的PDO驅動程序執行它們。

我會建議你改用一個更好的數據庫抽象層,如Doctrine(真的很強大)。然後,你就可以做這種方式:

Doctrine\DBAL\Connection也有方法來控制 事務隔離級別由底層數據庫的支持。 Connection#setTransactionIsolation($level)Connection#getTransactionIsolation()可用於該目的。該 可能的隔離級別由以下常量表示:

<?php 
Connection::TRANSACTION_READ_UNCOMMITTED 
Connection::TRANSACTION_READ_COMMITTED 
Connection::TRANSACTION_REPEATABLE_READ 
Connection::TRANSACTION_SERIALIZABLE 

this question知道如何主義與ZF有關使用學說事務管理的更多信息集成和this page