php sqlsrv 事务,PHP和SQLSRV驱动程序中的“不允许新事务”错误是什么?

我正在使用

PHP编写的Web应用程序并使用SQL Server 2008.为了连接到数据库,我使用了Microsoft的SQLSRV driever.在本应用程序的一部分中,我必须使用SQL Transactions.正如微软建议的那样,我完全基于这篇文章做到了.我的代码中的主要流程遵循以下步骤:

1-启动sql事务

2-通过jQuery将信息发送到PHP文件并检查JSON发送的结果

3如果结果为false则回滚,如果为真,则转到下一个查询.

如果没有发生错误且所有结果都正常,则提交4次事务.

// This is my pseudo code

if (sqlsrv_begin_transaction( $sqlsrv->sqlsrvLink ) === true) {

$firstQuery = sqlsrv_query($stmt1);

if (!$firstQuery) {

sqlsrv_rollback();

} else {

$nextQuery = sqlsrv_query($stmt2);

if (!$nextQuery) {

sqlsrv_rollback();

} else {

sqlsrv_commit();

}

}

} else {

print_r(sqlsrv_errors()); // Here is where I get the error below.

}

我遇到的问题是这个错误:

[Microsoft][SQL Server Native Client 10.0][SQL Server] New transaction is not allowed because there are other threads running in the session

我正在使用SQLSRV驱动程序ver.2.

这个错误是什么?我该如何解决?

我将自己的sqlsrv类包含在index.php的第一部分中,其中包含以下方法:

function __construct($dbServerName,$dbUsername,$dbPassword,$dbName)

{

$connectionInfo = array("Database"=> $dbName, "CharacterSet" => "UTF-8");

$this->sqlsrvLink = sqlsrv_connect($dbServerName, $connectionInfo);

if ($this->sqlsrvLink === false) {

$this->sqlsrvError = sqlsrv_errors();

}

}

function __destruct()

{

sqlsrv_close($this->sqlsrvLink);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值