PDO::__construct
(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDO::__construct — Creates a PDO instance representing a connection to a database
Description
$dsn
[, string $username
[, string $passwd
[, array $options
]]] )Creates a PDO instance to represent a connection to the requested database.
Parameters
- dsn
-
The Data Source Name, or DSN, contains the information required to connect to the database.
In general, a DSN consists of the PDO driver name, followed by a colon, followed by the PDO driver-specific connection syntax. Further information is available from the PDO driver-specific documentation.
The
dsn
parameter supports three different methods of specifying the arguments required to create a database connection:- Driver invocation
-
dsn
contains the full DSN. - URI invocation
-
dsn
consists ofuri:
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.uri:file:///path/to/dsnfile
- Aliasing
-
dsn
consists of a namename
that maps topdo.dsn.
in php.ini defining the DSN string.name
Note:
The alias must be defined in php.ini, and not .htaccess or httpd.conf
- username
-
The user name for the DSN string. This parameter is optional for some PDO drivers.
- passwd
-
The password for the DSN string. This parameter is optional for some PDO drivers.
- options
-
A key=>value array of driver-specific connection options.
Return Values
Returns a PDO object on success.
Errors/Exceptions
PDO::__construct() throws a PDOException if the attempt to connect to the requested database fails.
Examples
Example #1 Create a PDO instance via driver invocation
<?php /* Connect to a MySQL 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=john;PWD=mypass
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] pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
<?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(); } ?>
© 1997–2020 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/pdo.construct.php