Php pdo驱动程序不支持linux上的事务
我一直在使用DBLib PDO驱动程序将我的PHP Symfony项目连接到MsSQL数据库(在这里,我只需要查询2个表,设置为与MySQL数据库连接,后者是主数据库) 不幸的是,当需要使用事务时,我遇到了问题 下面的代码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
$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,问题不再存在。谢谢:)