我一直在使用 DBLib PDO 驱动程序将我的 PHP Symfony 项目与 MsSQL 数据库连接(我只需要查询 2 个表,Propel 设置为连接 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
我一直在寻找任何其他支持事务的驱动程序,但不幸的是,除了Microsoft Drivers 3.0 for PHP for SQL Server之外,我什么也找不到,这不适用于我的问题,因为我的项目正在使用 LAMP环境