Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.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驱动程序不支持linux上的事务_Php_Sql Server_Transactions_Pdo - Fatal编程技术网

Php pdo驱动程序不支持linux上的事务

Php pdo驱动程序不支持linux上的事务,php,sql-server,transactions,pdo,Php,Sql Server,Transactions,Pdo,我一直在使用DBLib PDO驱动程序将我的PHP Symfony项目连接到MsSQL数据库(在这里,我只需要查询2个表,设置为与MySQL数据库连接,后者是主数据库) 不幸的是,当需要使用事务时,我遇到了问题 下面的代码 $pdo = new PDO('dblib:host=IP;dbname=DBNAME', 'login', 'password'); $pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $p

我一直在使用DBLib PDO驱动程序将我的PHP Symfony项目连接到MsSQL数据库(在这里,我只需要查询2个表,设置为与MySQL数据库连接,后者是主数据库)

不幸的是,当需要使用事务时,我遇到了问题

下面的代码

$pdo = new PDO('dblib:host=IP;dbname=DBNAME', 'login', 'password');
$pdo -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo -> beginTransaction();
$sql = "INSERT INTO DBNAME (Fields) VALUES (Values) ";
$query = $pdo -> prepare($sql);
$query -> execute();
$sql = "SELECT Field FROM DBNAME";
$query = $pdo -> prepare($sql);
$query -> execute();
$dane1 = $query -> fetchAll();
$pdo -> rollBack();
$sql = "SELECT Field FROM DBNAME";
$query = $pdo -> prepare($sql);
$query -> execute();
$dane2 = $query -> fetchAll();
我犯了这样一个错误:

PDOException Object ( [message:protected] => This driver doesn't support transactions [string:Exception:private] => [code:protected] => 0 

我一直在寻找任何其他支持该事务的驱动程序,但不幸的是,我找不到任何其他驱动程序,除了,这不适用于我的问题,因为我的项目正在LAMP环境上工作

有一个长期存在的错误:


SqlServ驱动程序在Windows上的工作确实完美无缺。对于Linux,您应该通过php文档和中提到的ODBC(使用FreeTDS)进行连接。

如果您可以使用php 5.4,则为
PDODblib添加了事务支持


或者,您可以将
pdodlib
文件从5.4源代码复制到5.3并编译(它们几乎相同)或执行手动事务查询。

您使用的是MyISAM、InnoDB还是其他什么?对于MySQL,我使用的是InnoDB,但问题是根据Microsoft SQL Server数据库…在与一位客户进行了一点斗争后-我已将php升级到5.4,问题不再存在。谢谢:)