diff options
Diffstat (limited to 'vendor/fguillot/picodb/lib/PicoDb/Driver/Postgres.php')
-rw-r--r-- | vendor/fguillot/picodb/lib/PicoDb/Driver/Postgres.php | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/vendor/fguillot/picodb/lib/PicoDb/Driver/Postgres.php b/vendor/fguillot/picodb/lib/PicoDb/Driver/Postgres.php index a494cdca..4a589e87 100644 --- a/vendor/fguillot/picodb/lib/PicoDb/Driver/Postgres.php +++ b/vendor/fguillot/picodb/lib/PicoDb/Driver/Postgres.php @@ -20,9 +20,6 @@ class Postgres extends Base * @var array */ protected $requiredAttributes = array( - 'hostname', - 'username', - 'password', 'database', ); @@ -42,13 +39,25 @@ class Postgres extends Base */ public function createConnection(array $settings) { - $dsn = 'pgsql:host='.$settings['hostname'].';dbname='.$settings['database']; + $dsn = 'pgsql:dbname='.$settings['database']; + + if (! empty($settings['username'])) { + $dsn .= ';user='.$settings['username']; + } + + if (! empty($settings['password'])) { + $dsn .= ';password='.$settings['password']; + } + + if (! empty($settings['hostname'])) { + $dsn .= ';host='.$settings['hostname']; + } if (! empty($settings['port'])) { $dsn .= ';port='.$settings['port']; } - $this->pdo = new PDO($dsn, $settings['username'], $settings['password']); + $this->pdo = new PDO($dsn); if (isset($settings['schema_table'])) { $this->schemaTable = $settings['schema_table']; |