From e8561ca9050aaa051273c83ff97ec53d5c7a24f2 Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Mon, 7 Nov 2011 13:35:00 -0600 Subject: [PATCH] Clean up the MySQL database connector. --- laravel/database/connectors/mysql.php | 34 +++++++++++---------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/laravel/database/connectors/mysql.php b/laravel/database/connectors/mysql.php index 2b401603..260722f2 100644 --- a/laravel/database/connectors/mysql.php +++ b/laravel/database/connectors/mysql.php @@ -10,38 +10,32 @@ class MySQL extends Connector { */ public function connect($config) { - $connection = new PDO($this->dsn($config), $config['username'], $config['password'], $this->options($config)); + extract($config); - if (isset($config['charset'])) - { - $connection->prepare("SET NAMES '{$config['charset']}'")->execute(); - } - - return $connection; - } - - /** - * Format the DSN connection string for a MySQL connection. - * - * @param array $config - * @return string - */ - protected function dsn($config) - { // Format the initial MySQL PDO connection string. These options are required // for every MySQL connection that is established. The connection strings // have the following convention: "mysql:host=hostname;dbname=database" - $dsn = sprintf('%s:host=%s;dbname=%s', $config['driver'], $config['host'], $config['database']); + $dsn = sprintf('%s:host=%s;dbname=%s', $driver, $host, $database); // Check for any optional MySQL PDO options. These options are not required // to establish a PDO connection; however, may be needed in certain server // or hosting environments used by the developer. foreach (array('port', 'unix_socket') as $key => $value) { - if (isset($config[$key])) $dsn .= ";{$key}={$value}"; + if (isset($config[$key])) + { + $dsn .= ";{$key}={$value}"; + } } - return $dsn; + $connection = new PDO($dsn, $username, $password, $this->options($config)); + + if (isset($config['charset'])) + { + $connection->prepare("SET NAMES '{$charset}'")->execute(); + } + + return $connection; } } \ No newline at end of file