From cf0376d5e1934ecf1b6a50e4bb9b760b1178a83b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=91=E6=9E=97?= Date: Wed, 5 Apr 2023 10:24:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kiri-engine/Pool/Connection.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/kiri-engine/Pool/Connection.php b/kiri-engine/Pool/Connection.php index ed63a970..0c1e412b 100644 --- a/kiri-engine/Pool/Connection.php +++ b/kiri-engine/Pool/Connection.php @@ -134,8 +134,22 @@ class Connection extends Component */ public function initConnections(array $config, int $max) { - $this->pool->initConnections($config['cds'], $max, function () use ($config) { - return new \Database\Mysql\PDO($config); + $this->pool->initConnections($config['cds'], $max, static function () use ($config) { + $link = new \PDO('mysql:dbname=' . $config['database'] . ';host=' . $config['cds'], + $config['username'], $config['password'], [ + \PDO::ATTR_EMULATE_PREPARES => false, + \PDO::ATTR_CASE => \PDO::CASE_NATURAL, + \PDO::ATTR_PERSISTENT => true, + \PDO::ATTR_TIMEOUT => $config['connect_timeout'], + \PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES ' . ($config['charset'] ?? 'utf8mb4') + ]); + $link->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); + $link->setAttribute(\PDO::ATTR_STRINGIFY_FETCHES, false); + $link->setAttribute(\PDO::ATTR_ORACLE_NULLS, \PDO::NULL_EMPTY_STRING); + foreach ($config['attributes'] as $key => $attribute) { + $link->setAttribute($key, $attribute); + } + return $link; }); }