Exceptions regarding existing active transactions were thrown while I was almost certain sufficient checks were in place.
However, I quickly found out that a strict boolean comparison to PDO::inTransaction() was failing.
Using var_dump I learned that this function was returning integers, not boolean values.
var_dump(PDO::inTransaction()); // int(1) || int(0)
PDO::inTransaction
(PHP 5 >= 5.3.3, Bundled pdo_pgsql)
PDO::inTransaction — トランザクション内かどうかを調べる
説明
bool PDO::inTransaction
( void
)
ドライバ内で、現在トランザクションがアクティブになっているかどうかを調べます。 このメソッドが機能するのは、トランザクションをサポートしているデータベースドライバのみです。
パラメータ
この関数にはパラメータはありません。
返り値
トランザクションが現在アクティブな場合に TRUE、
そうでないときに FALSE を返します。
r. hanouwer ¶
1 year ago
ron korving ¶
2 years ago
This method actually seems to work fine on PHP5.3.5 (and probably a few older versions).
