PHP Doku:: Connecting to PostgreSQL databases - ref.pdo-pgsql.connection.html

Verlauf / Chronik / History: (6) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDatenbankerweiterungenAbstraktionsebenenPHP Data ObjectsPDO TreiberPostgreSQL Functions (PDO_PGSQL)PDO_PGSQL DSN

Ein Service von Reinhard Neidl - Webprogrammierung.

PostgreSQL Functions (PDO_PGSQL)

<<PostgreSQL Functions (PDO_PGSQL)

PDO::pgsqlLOBCreate>>

PDO_PGSQL DSN

(PECL PDO_PGSQL >= 0.1.0)

PDO_PGSQL DSNConnecting to PostgreSQL databases

Beschreibung

The PDO_PGSQL Data Source Name (DSN) is composed of the following elements, delimited by spaces or semicolons:

DSN prefix

The DSN prefix is pgsql:.

host

The hostname on which the database server resides.

port

The port on which the database server is running.

dbname

The name of the database.

user

The name of the user for the connection. If you specify the user name in the DSN, PDO ignores the value of the user name argument in the PDO constructor.

password

The password of the user for the connection. If you specify the password in the DSN, PDO ignores the value of the password argument in the PDO constructor.

Hinweis:

The bytea fields are returned as streams.

Beispiele

Beispiel #1 PDO_PGSQL DSN examples

The following example shows a PDO_PGSQL DSN for connecting to a PostgreSQL database:

pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass


3 BenutzerBeiträge:
- Beiträge aktualisieren...
tmairs at aasland dot com
4.05.2010 2:28
The DSN syntax shown here did not work for me, but this did:

<?php
$dbh
= new PDO("pgsql:dbname=$dbname;host=$host", $username, $password );
?>

As opposed to

<?php
$dbh
= new PDO('pgsql:dbname=$dbname;
                           host=$host;
                           username=$username;
                           password=$password'
);
?>

Which makes sense and is more PGSQL standard.
tim at buttersideup dot com
28.12.2007 19:35
You can also connect to PostgreSQL via a UNIX domain socket by leaving the host empty.  This should have less overhead than using TCP e.g.:

$dbh = new PDO('pgsql:user=exampleuser dbname=exampledb password=examplepass');

In fact as the C library call PQconnectdb underlies this implementation, you can supply anything that this library call would take - the "pgsql:" prefix gets stripped off before PQconnectdb is called, and if you supply any of the optional arguments (e.g. user), then these arguments will be added to the string that you supplied...  Check the docs for your relevant PostgreSQL client library: e.g.

http://www.postgresql.org/docs/8.3/static/libpq-connect.html

If you really want, you can use ';'s to separate your arguments - these will just be converted to spaces before PQconnectdb is called.

Tim.
Chris C.
15.11.2005 6:12
The PDO_PGSQL DSN should be seperated by semi-colons not spaces. It should follow the convention like the rest of the PDO DSNs.

'pgsql:dbname=example;user=nobody;password=change_me;host=localhost'



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)