From 022e3c97787288d9fafbfb3b23eec4cc4231010c Mon Sep 17 00:00:00 2001 From: Petr Levtonov Date: Thu, 9 Jan 2025 11:28:57 +0100 Subject: [PATCH 1/4] No explicit `USE database` statement No need to explicitly send another `USE database` statement. The database is already selected via the DSN string. Multiple reasons for this: - One less round trip per connection - No connection pinning when used with a proxy (e.g. RDS Proxy). --- src/Illuminate/Database/Connectors/MySqlConnector.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/Illuminate/Database/Connectors/MySqlConnector.php b/src/Illuminate/Database/Connectors/MySqlConnector.php index 3d2e5252e636..2d5f22f0548a 100755 --- a/src/Illuminate/Database/Connectors/MySqlConnector.php +++ b/src/Illuminate/Database/Connectors/MySqlConnector.php @@ -23,10 +23,6 @@ public function connect(array $config) // connection's behavior, and some might be specified by the developers. $connection = $this->createConnection($dsn, $config, $options); - if (! empty($config['database'])) { - $connection->exec("use `{$config['database']}`;"); - } - $this->configureConnection($connection, $config); return $connection; From dbbe05cddb526bdf7a1af7659fcf97a064db4f32 Mon Sep 17 00:00:00 2001 From: Petr Levtonov Date: Thu, 9 Jan 2025 16:12:40 +0100 Subject: [PATCH 2/4] Update MySqlConnector.php --- src/Illuminate/Database/Connectors/MySqlConnector.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Illuminate/Database/Connectors/MySqlConnector.php b/src/Illuminate/Database/Connectors/MySqlConnector.php index 2d5f22f0548a..6cd21c4f31a1 100755 --- a/src/Illuminate/Database/Connectors/MySqlConnector.php +++ b/src/Illuminate/Database/Connectors/MySqlConnector.php @@ -23,6 +23,11 @@ public function connect(array $config) // connection's behavior, and some might be specified by the developers. $connection = $this->createConnection($dsn, $config, $options); + // Allow skipping of explicit `USE database` statement. + if (! empty($config['database']) && (! isset($config['explicit_use_db']) || $config['explicit_use_db'])) { + $connection->exec("use `{$config['database']}`;"); + } + $this->configureConnection($connection, $config); return $connection; From aa05672b77b74a46920999f15505eef75e15df1c Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Thu, 9 Jan 2025 12:58:52 -0800 Subject: [PATCH 3/4] Update MySqlConnector.php --- src/Illuminate/Database/Connectors/MySqlConnector.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Illuminate/Database/Connectors/MySqlConnector.php b/src/Illuminate/Database/Connectors/MySqlConnector.php index 6cd21c4f31a1..0505713b09d2 100755 --- a/src/Illuminate/Database/Connectors/MySqlConnector.php +++ b/src/Illuminate/Database/Connectors/MySqlConnector.php @@ -23,8 +23,9 @@ public function connect(array $config) // connection's behavior, and some might be specified by the developers. $connection = $this->createConnection($dsn, $config, $options); - // Allow skipping of explicit `USE database` statement. - if (! empty($config['database']) && (! isset($config['explicit_use_db']) || $config['explicit_use_db'])) { + if (! empty($config['database']) && + (! isset($config['use_db_after_connecting']) || + $config['use_db_after_connecting'])) { $connection->exec("use `{$config['database']}`;"); } From 67e059673e9434373e932eac80f6cc5ee1f36db6 Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Thu, 9 Jan 2025 12:59:34 -0800 Subject: [PATCH 4/4] formatting --- src/Illuminate/Database/Connectors/MySqlConnector.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Connectors/MySqlConnector.php b/src/Illuminate/Database/Connectors/MySqlConnector.php index 0505713b09d2..8b3b971cae27 100755 --- a/src/Illuminate/Database/Connectors/MySqlConnector.php +++ b/src/Illuminate/Database/Connectors/MySqlConnector.php @@ -24,7 +24,7 @@ public function connect(array $config) $connection = $this->createConnection($dsn, $config, $options); if (! empty($config['database']) && - (! isset($config['use_db_after_connecting']) || + (! isset($config['use_db_after_connecting']) || $config['use_db_after_connecting'])) { $connection->exec("use `{$config['database']}`;"); }