Bug #80871 [Com]: PDO::inTransactional() always return false (Yii2)
Edit report at https://bugs.php.net/bug.php?id=80871&edit=1
ID: 80871
Comment by: menschov dot evgeny at yandex dot ru
Reported by: sevak754 at gmail dot com
Summary: PDO::inTransactional() always return false (Yii2)
Status: Open
Type: Bug
Package: PDO DBlib
Operating System: Linux
PHP Version: 8.0.3
Block user comment: N
Private report: N
New Comment:
Are there any chances of fixing this problem?
Previous Comments:
------------------------------------------------------------------------
[2021-03-17 06:58:03] sevak754 at gmail dot com
Yes, DBLIB version 7.2
------------------------------------------------------------------------
[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
Thread (6 messages)