MIF_E31222691/laravel/database/connectors/mysql.php

41 lines
1.1 KiB
PHP

<?php namespace Laravel\Database\Connectors; use PDO;
class MySQL extends Connector {
/**
* Establish a PDO database connection for a given database configuration.
*
* @param array $config
* @return PDO
*/
public function connect($config)
{
extract($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', $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}";
}
}
$connection = new PDO($dsn, $username, $password, $this->options($config));
if (isset($config['charset']))
{
$connection->prepare("SET NAMES '{$charset}'")->execute();
}
return $connection;
}
}