(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDO::__construct — 创建一个表示数据库连接的 PDO 实例
$dsn
,$username
= null
,$password
= null
,$options
= null
创建一个表示连接到请求数据库的数据库连接 PDO 实例。
dsn
数据源名称或叫做 DSN,包含了请求连接到数据库的信息。
通常,一个 DSN 由 PDO 驱动名、紧随其后的冒号、以及具体 PDO 驱动的连接语法组成。更深入的信息能从 PDO 具体驱动文档找到。
dsn
参数支持三种不同的方式 创建一个数据库连接:
dsn
包含完整的DSN。
dsn
由 uri:
后跟 URI 组成,该 URI 包含定义 DSN
字符串的文件位置。URI 可以指定本地文件或远程 URL。
uri:file:///path/to/dsnfile
dsn
由映射到 php.ini 中定义 DSN 字符串的 pdo.dsn.
的 name
name
名组成。
注意:
别名必须得在 php.ini 中定义了,不能是在 .htaccess 或 httpd.conf 中 。
username
DSN字符串中的用户名。对于某些PDO驱动,此参数为可选项。
password
DSN字符串中的密码。对于某些PDO驱动,此参数为可选项。
options
一个具体驱动的连接选项的键=>值数组。
如果试图连接到请求的数据库失败,无论当前设置了哪个 PDO::ATTR_ERRMODE
,PDO::__construct()
抛出 PDOException。
示例 #1 通过驱动程序调用创建 PDO 实例
<?php
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
$dbh = new PDO($dsn, $user, $password);
?>
示例 #2 通过 URI 调用创建 PDO 实例
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
PHP 脚本可以简单的传递指向文件 URI 的 uri:
参数来创建数据库连接:
<?php
$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';
$dbh = new PDO($dsn, $user, $password);
?>
示例 #3 使用别名创建一个PDO实例
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
$dsn = 'mydb';
$user = '';
$password = '';
$dbh = new PDO($dsn, $user, $password);
?>