PDO::__construct

(no version information, might be only in CVS)

PDO::__construct --  Creates a PDO instance to represent a connection to a database

Description

PDO PDO::__construct ( string dsn, string username, string password [, array driver_opts])

Warning

This function is EXPERIMENTAL. The behaviour of this function, the name of this function, and anything else documented about this function may change without notice in a future release of PHP. Use this function at your own risk.

Creates a PDO instance to represent a connection to the requested database. The dsn parameter supports three different methods of specifying the arguments required to create a database connection:

Driver invocation

dsn consists of the PDO driver name, followed by a colon, followed by the PDO driver-specific connection syntax. For example, 'odbc:DSN=SAMPLE;UID=db2inst1;PWD=ibmdb2' would create a PDO_ODBC connection to an ODBC database, while 'mysql:host=127.0.0.1;dbname=testdb' would create a PDO_MYSQL connection to a MySQL database.

URI invocation

dsn consists of uri: followed by a URI that defines the location of a file containing the DSN string. The URI can specify a local file or a remote URL.

Aliasing

dsn consists of a name name that maps to pdo.dsn.name in php.ini defining the DSN string. name can not contain a colon.

If username or password are not required to complete the connection, you must pass empty strings or the constructor will throw a PDOException exception.

Example 1. Create a PDO instance via driver invocation

<?php
/* Connect to an ODBC database using driver invocation */

$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
try {
  
$dbh = new PDO($dsn, $user, $password);
}
catch (PDOException $e) {
  echo
'Connection failed: ' . $e->getMessage();
}
?>

Example 2. Create a PDO instance via URI invocation

The following example assumes that the file /usr/local/dbconnect exists with file permissions that enable PHP to read the file. The file contains the PDO DSN to connect to a DB2 database through the PDO_ODBC driver:

odbc:DSN=SAMPLE;UID=db2inst1;PWD=password

The PHP script can then create a database connection by simply passing the uri: parameter and pointing to the file URI:

<?php
/* Connect to an ODBC database using driver invocation */

$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';
try {
  
$dbh = new PDO($dsn, $user, $password);
}
catch (PDOException $e) {
  echo
'Connection failed: ' . $e->getMessage();
}
?>

Example 3. Create a PDO instance using an alias

The following example assumes that php.ini contains the following entry to enable a connection to a MySQL database using only the alias mydb:
pdo.dsn.mydb=mysql:dbname=testdb;host=127.0.0.1

<?php
/* Connect to an ODBC database using an alias */

$dsn = 'mydb';
$user = '';
$password = '';
try {
  
$dbh = new PDO($dsn, $user, $password);
}
catch (PDOException $e) {
  echo
'Connection failed: ' . $e->getMessage();
}
?>