summaryrefslogtreecommitdiff
path: root/vendor/fguillot/picodb/lib/PicoDb/Driver/Postgres.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/fguillot/picodb/lib/PicoDb/Driver/Postgres.php')
-rw-r--r--vendor/fguillot/picodb/lib/PicoDb/Driver/Postgres.php19
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'];