Fixed PDO creation for PostgreSQL without pdo_mysql extension. Issue #73.
This commit is contained in:
parent
dd8c85a449
commit
fd356a4dda
|
@ -75,18 +75,22 @@ class Database extends \PDO
|
||||||
}
|
}
|
||||||
$dns .= ';dbname=' . self::$details['db'];
|
$dns .= ';dbname=' . self::$details['db'];
|
||||||
|
|
||||||
|
$pdoOptions = [
|
||||||
|
\PDO::ATTR_PERSISTENT => false,
|
||||||
|
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
|
||||||
|
\PDO::ATTR_TIMEOUT => 2,
|
||||||
|
];
|
||||||
|
if ('mysql' === self::$details['type']) {
|
||||||
|
$pdoOptions[\PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES 'UTF8'";
|
||||||
|
}
|
||||||
|
|
||||||
// Try to connect:
|
// Try to connect:
|
||||||
try {
|
try {
|
||||||
$connection = new self(
|
$connection = new self(
|
||||||
$dns,
|
$dns,
|
||||||
self::$details['user'],
|
self::$details['user'],
|
||||||
self::$details['pass'],
|
self::$details['pass'],
|
||||||
[
|
$pdoOptions
|
||||||
\PDO::ATTR_PERSISTENT => false,
|
|
||||||
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
|
|
||||||
\PDO::ATTR_TIMEOUT => 2,
|
|
||||||
\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'',
|
|
||||||
]
|
|
||||||
);
|
);
|
||||||
} catch (\PDOException $ex) {
|
} catch (\PDOException $ex) {
|
||||||
$connection = false;
|
$connection = false;
|
||||||
|
|
|
@ -411,23 +411,27 @@ class InstallCommand extends Command
|
||||||
*/
|
*/
|
||||||
protected function verifyDatabaseDetails(array $db, OutputInterface $output)
|
protected function verifyDatabaseDetails(array $db, OutputInterface $output)
|
||||||
{
|
{
|
||||||
try {
|
$dns = $db['type'] . ':host=' . $db['servers']['write'][0]['host'];
|
||||||
$dns = $db['type'] . ':host=' . $db['servers']['write'][0]['host'];
|
if (isset($db['servers']['write'][0]['port'])) {
|
||||||
if (isset($db['servers']['write'][0]['port'])) {
|
$dns .= ';port=' . (integer)$db['servers']['write'][0]['port'];
|
||||||
$dns .= ';port=' . (integer)$db['servers']['write'][0]['port'];
|
}
|
||||||
}
|
$dns .= ';dbname=' . $db['name'];
|
||||||
$dns .= ';dbname=' . $db['name'];
|
|
||||||
|
|
||||||
|
$pdoOptions = [
|
||||||
|
\PDO::ATTR_PERSISTENT => false,
|
||||||
|
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
|
||||||
|
\PDO::ATTR_TIMEOUT => 2,
|
||||||
|
];
|
||||||
|
if ('mysql' === $db['type']) {
|
||||||
|
$pdoOptions[\PDO::MYSQL_ATTR_INIT_COMMAND] = "SET NAMES 'UTF8'";
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
$pdo = new PDO(
|
$pdo = new PDO(
|
||||||
$dns,
|
$dns,
|
||||||
$db['username'],
|
$db['username'],
|
||||||
$db['password'],
|
$db['password'],
|
||||||
[
|
$pdoOptions
|
||||||
\PDO::ATTR_PERSISTENT => false,
|
|
||||||
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
|
|
||||||
\PDO::ATTR_TIMEOUT => 2,
|
|
||||||
\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'',
|
|
||||||
]
|
|
||||||
);
|
);
|
||||||
|
|
||||||
unset($pdo);
|
unset($pdo);
|
||||||
|
|
Loading…
Reference in a new issue