Bug #80871 [Com]: PDO::inTransactional() always return false (Yii2)

From: Date: Wed, 17 Mar 2021 06:58:03 +0000
Subject: Bug #80871 [Com]: PDO::inTransactional() always return false (Yii2)
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-232801@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=80871&edit=1 ID: 80871 Comment by: sevak754 at gmail dot com Reported by: sevak754 at gmail dot com Summary: PDO::inTransactional() always return false (Yii2) Status: Open Type: Bug Package: PDO related Operating System: Linux PHP Version: 8.0.3 Block user comment: N Private report: N New Comment: Yes, DBLIB version 7.2 Previous Comments: ------------------------------------------------------------------------ [2021-03-16 08:46:55] nikic@php.net When you say you use MSSQL, does that mean you use the PDO DBLIB driver? ------------------------------------------------------------------------ [2021-03-16 08:39:41] sevak754 at gmail dot com Description: ------------ I've tried to begin transaction with Yii2, but it didn't commit. It happened because here yiisoft/yii2/db/Transaction.php:168 is PDO::inTransactional() check and he always return false. This problem appeared after update to php 8. I use MSSQL and I think there is a problem with driver. Test script: --------------- if ($this->_level === 0) { Yii::debug('Commit transaction', __METHOD__); // make sure the transaction wasn't autocommitted if ($this->db->pdo->inTransaction()) { // always false $this->db->pdo->commit(); } $this->db->trigger(Connection::EVENT_COMMIT_TRANSACTION); return; } Expected result: ---------------- Transaction has been commited Actual result: -------------- Transaction has been rollbacked ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=80871&edit=1

« previous php.bugs (#232801) next »