gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 05:28:00 25 4
gpt4 key购买 nike

我一直在使用 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 环境中工作

最佳答案

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

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

关于php - pdo 驱动程序不支持 linux 上的事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12969221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com