From bdf7699f7238865a8f23af51d6c01269cd120ab4 Mon Sep 17 00:00:00 2001 From: Christopher Fuchs Date: Fri, 7 Aug 2020 12:52:39 +0200 Subject: [PATCH] Added possibility to configure isolation level for mysql connections --- .../Database/Connectors/MySqlConnector.php | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/Illuminate/Database/Connectors/MySqlConnector.php b/src/Illuminate/Database/Connectors/MySqlConnector.php index 4bd58551db6e..3819f438787c 100755 --- a/src/Illuminate/Database/Connectors/MySqlConnector.php +++ b/src/Illuminate/Database/Connectors/MySqlConnector.php @@ -27,6 +27,8 @@ public function connect(array $config) $connection->exec("use `{$config['database']}`;"); } + $this->configureIsolationLevel($connection, $config); + $this->configureEncoding($connection, $config); // Next, we will check to see if a timezone has been specified in this config @@ -44,7 +46,25 @@ public function connect(array $config) * * @param \PDO $connection * @param array $config - * @return void + * @return void|\PDO + */ + protected function configureIsolationLevel($connection, array $config) + { + if (! isset($config['isolation_level'])) { + return $connection; + } + + $connection->prepare( + "SET SESSION TRANSACTION ISOLATION LEVEL '{$config['isolation_level']}'" + )->execute(); + } + + /** + * Set the connection character set and collation. + * + * @param \PDO $connection + * @param array $config + * @return void|\PDO */ protected function configureEncoding($connection, array $config) {