Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过PDO或Zend_Db_适配器_抽象设置隔离级别?_Php_Pdo_Zend Db - Fatal编程技术网

Php 通过PDO或Zend_Db_适配器_抽象设置隔离级别?

Php 通过PDO或Zend_Db_适配器_抽象设置隔离级别?,php,pdo,zend-db,Php,Pdo,Zend Db,有没有办法在php中独立地为具体的数据库驱动程序设置隔离级别? 看起来没有。不幸的是,我不确定有没有办法用Zend_Db做这样的事情。手册中说,setTransactionIsolationLevel()只能与一起使用 您可以使用setTransactionIsolationLevel()为设置隔离级别 电流连接。该值可以是SQLSRV_TXN_READ_UNCOMMITTED, SQLSRV_TXN_READ_COMMITTED,SQLSRV_TXN_REPEATABLE_READ, SQLS

有没有办法在php中独立地为具体的数据库驱动程序设置隔离级别?
看起来没有。

不幸的是,我不确定有没有办法用Zend_Db做这样的事情。手册中说,
setTransactionIsolationLevel()
只能与一起使用

您可以使用setTransactionIsolationLevel()为设置隔离级别 电流连接。该值可以是SQLSRV_TXN_READ_UNCOMMITTED, SQLSRV_TXN_READ_COMMITTED,SQLSRV_TXN_REPEATABLE_READ, SQLSRV_TXN_快照或SQLSRV_TXN_可序列化

Zend_Db API似乎没有实现管理事务隔离级别的方法,唯一的方法是编写您自己的SQL语句,并根据您使用的PDO驱动程序执行它们

我建议您改为使用更好的数据库抽象层,例如(非常强大)。然后你可以这样做:

原则\DBAL\Connection
也有控制 基础数据库支持的事务隔离级别。
连接#设置事务隔离($level)
连接#getTransactionIsolation()
可用于此目的。这个 可能的隔离级别由以下常量表示:


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