From 306226f3d2de930d5c5095cc7493f33e50296c85 Mon Sep 17 00:00:00 2001 From: songchenxuan Date: Tue, 22 Aug 2023 09:21:04 +0800 Subject: [PATCH] * Fix mysql update bug. --- db/update18.5.sql | 2 +- lib/dbh/dbh.class.php | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/db/update18.5.sql b/db/update18.5.sql index 9072ad19c7..07d4a03818 100644 --- a/db/update18.5.sql +++ b/db/update18.5.sql @@ -71,7 +71,7 @@ UPDATE `zt_notify` SET `subjectCopy` = `subject`; ALTER TABLE `zt_notify` DROP `subject`; ALTER TABLE `zt_notify` CHANGE COLUMN `subjectCopy` `subject` text; -DROP INDEX IF EXISTS `objectType_toList_status` ON `zt_notify`; +DROP INDEX `objectType_toList_status` ON `zt_notify`; CREATE INDEX `objectType` ON `zt_notify` (`objectType`); CREATE INDEX `status` ON `zt_notify` (`status`); diff --git a/lib/dbh/dbh.class.php b/lib/dbh/dbh.class.php index b2bd2f341c..2eb857cbe6 100644 --- a/lib/dbh/dbh.class.php +++ b/lib/dbh/dbh.class.php @@ -258,11 +258,11 @@ class dbh $sql = trim($sql); $sql = $this->formatFunction($sql); - if(defined('IN_UPGRADE')) - { + if(defined('IN_UPGRADE')) + { $sql = $this->processDmChangeColumn($sql); $sql = $this->processDmTableIndex($sql); - } + } $actionPos = strpos($sql, ' '); $action = strtoupper(substr($sql, 0, $actionPos)); @@ -385,8 +385,8 @@ class dbh */ public function processDmTableIndex($sql) { - if(strpos($sql, 'DROP INDEX IF EXISTS') === FALSE) return $sql; - return preg_replace('/DROP INDEX IF EXISTS `(\w+)` ON `zt_(\w+)`/', 'DROP INDEX IF EXISTS `$2_$1`', $sql); + if(strpos($sql, 'DROP INDEX IF EXISTS') === FALSE) return $sql; + return preg_replace('/DROP INDEX `(\w+)` ON `zt_(\w+)`/', 'DROP INDEX IF EXISTS `$2_$1`', $sql); } /** @@ -398,8 +398,8 @@ class dbh */ public function processDmChangeColumn($sql) { - if(strpos($sql, 'CHANGE COLUMN') === FALSE) return $sql; - return preg_replace('/ALTER TABLE `([^`]+)` CHANGE COLUMN `([^`]+)` `([^`]+)` (\w+)/', 'ALTER TABLE `$1` RENAME COLUMN `$2` TO `$3`;', $sql); + if(strpos($sql, 'CHANGE COLUMN') === FALSE) return $sql; + return preg_replace('/ALTER TABLE `([^`]+)` CHANGE COLUMN `([^`]+)` `([^`]+)` (\w+)/', 'ALTER TABLE `$1` RENAME COLUMN `$2` TO `$3`;', $sql); } /**