From 61e60e721821b43e0ab26212095a1ab6f15d1f9b Mon Sep 17 00:00:00 2001 From: Jerry Date: Wed, 7 Jun 2023 13:16:54 +0800 Subject: [PATCH] fix dbName bug --- src/ZM/Store/Database/DBWrapper.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ZM/Store/Database/DBWrapper.php b/src/ZM/Store/Database/DBWrapper.php index 0dd9b17a..1de1d662 100644 --- a/src/ZM/Store/Database/DBWrapper.php +++ b/src/ZM/Store/Database/DBWrapper.php @@ -24,19 +24,27 @@ class DBWrapper $db_type = $options['dbType'] ?? ZM_DB_POOL; try { if ($db_type === ZM_DB_POOL) { + // 设置 dbName + $options['dbName'] = $name; // pool 为连接池格式 $db_list = config()->get('global.database'); if (isset($db_list[$name]) || (is_countable($db_list) ? count($db_list) : 0) === 1) { if ($name === '') { $name = array_key_first($db_list); } - $this->connection = DriverManager::getConnection(['driverClass' => $this->getConnectionClass($db_list[$name]['type']), ...$options]); + $this->connection = DriverManager::getConnection(array_merge( + ['driverClass' => $this->getConnectionClass($db_list[$name]['type']), 'dbName' => $name], + $options + )); } else { throw new DBException('Cannot find database config named "' . $name . '" !'); } } elseif ($db_type === ZM_DB_PORTABLE) { // portable 为sqlite单文件模式 - $this->connection = DriverManager::getConnection(['driverClass' => SQLiteDriver::class, 'filename' => $name, ...$options]); + $this->connection = DriverManager::getConnection(array_merge( + ['driverClass' => SQLiteDriver::class, 'filename' => $name], + $options + )); } } catch (\Throwable $e) { throw new DBException($e->getMessage(), $e->getCode(), $e);