0
我使用SQLSRV
驅動程序與PDO
在Windows環境中連接MSSQL Server
。這是我試圖運行命令行cron作業一樣SQLServer事務與PHP PDO在命令行中使用sqlsrv不起作用
我得到致命錯誤,一旦說There is no active transaction
作爲我的數據庫對象嘗試提交事務相當奇怪的問題。下面是我的源代碼
try {
$this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->dbh->beginTransaction();
INSERT STATEMENT 1
INSERT STATEMENT 2
..................
..................
$this->dbh->commit();
} catch (Exception $e) {
$this->dbh->rollBack();
}
爲了檢查該交易是否是工作或沒有,我只是把beginTransaction()
線,如果這樣
if ($this->dbh->beginTransaction()) {
echo "Database transaction started";
else {
echo "Not started";
}
條件這是PDO對象看怎麼樣,當我打印$這個 - >胸徑
PDO Object
(
)
則控制進入到其他部分,並顯示Not started
。奇怪的是,我的cron文件位於我的項目下,它正在使用應用程序其他部分(管理員和前端)使用的相同數據庫連接文件。在同一個cron文件中,SELECT和UPDATE工作正常。
我觀察到只有單個數據庫實例正在創建。數據庫事務也適用於管理員和前端區域。
我無法從Google獲得幫助,無法理解數據庫事務爲何不能用於命令行執行。
顯示連接對象($這個 - >胸徑) – RomanPerekhrest
我已經展示如何PDO對象看起來像更新我的問題。它在數據庫事務正常工作的其他應用程序區域(管理員和前端)看起來是一樣的。 – neeraj
https://github.com/yiisoft/yii/pull/1307/files – RomanPerekhrest