From 6c6e7e6457fece3f2855e1998480dc2a7676ac46 Mon Sep 17 00:00:00 2001 From: wangyidong Date: Thu, 30 Nov 2023 09:42:23 +0800 Subject: [PATCH] * Fix transaction for upgrade. --- lib/dbh/dbh.class.php | 11 +++++++++++ module/upgrade/control.php | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/dbh/dbh.class.php b/lib/dbh/dbh.class.php index 43910d140f..3a4c0681a2 100644 --- a/lib/dbh/dbh.class.php +++ b/lib/dbh/dbh.class.php @@ -665,6 +665,17 @@ class dbh return $this->pdo->beginTransaction(); } + /** + * Check in transaction or not. + * + * @access public + * @return bool + */ + public function inTransaction() + { + return $this->pdo->inTransaction(); + } + /** * Roll back if transaction failed. * diff --git a/module/upgrade/control.php b/module/upgrade/control.php index aac5b42bbf..cc9c04be4a 100644 --- a/module/upgrade/control.php +++ b/module/upgrade/control.php @@ -167,7 +167,7 @@ class upgrade extends control if(!$this->upgrade->isError()) { $this->loadModel('setting')->updateVersion($this->config->version); - $this->dao->commit(); + if($this->dao->inTransaction()) $this->dao->commit(); $systemMode = $this->setting->getItem('owner=system&module=common§ion=global&key=mode');