PDO::__construct¶
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDO::__construct — 创建一个表示数据库连接的 PDO 实例
说明¶
PDO::__construct(
string $dsn,
string $username = ?,
string $password = ?,
array $driver_options = ?
)
创建一个表示连接到请求数据库的数据库连接 PDO 实例。
参数¶
dsn¶
数据源名称或叫做 DSN,包含了请求连接到数据库的信息。
通常,一个 DSN 由 PDO 驱动名、紧随其后的冒号、以及具体 PDO 驱动的连接语法组成。更深入的信息能从 PDO 具体驱动文档找到。
The dsn 参数支持三种不同的方式 创建一个数据库连接:
Driver invocation¶
dsn 包含完整的DSN, 例如
aci:dbname=localhost:2003/osrdb;charset=ZHS16GBK。
URI invocation¶
dsn 由 uri: 后跟一个 URI 组成,该 URI 定义包含 DSN 字符串的文件的位置。URI 可以指定本地文件或远程 URL.
uri:file:///path/to/dsnfile
Aliasing¶
dsn 由映射到 php 中 pdo.dsn.name 的名称名称组成.ini定义 DSN 字符串.
警告
注意: 别名必须得在 php.ini 中定义了,不能是在 .htaccess 或 httpd.conf 中 。
username¶
DSN字符串中的用户名。对于某些PDO驱动,此参数为可选项。
password¶
DSN字符串中的密码。对于某些PDO驱动,此参数为可选项。
driver_options¶
一个具体驱动的连接选项的键=>值数组。
返回值¶
成功则返回一个PDO对象。
错误/异常¶
如果试图连接到请求的数据库失败,则PDO::__construct() 抛出一个 PDO异常(PDOException) 。
范例¶
示例 #1 通过驱动程序调用创建 PDO 实例¶
<?php
/* Connect to an database using driver invocation */
$dsn = "aci:dbname=localhost:2003/osrdb;charset=ZHS16GBK";
$user = "sysdba";
$password = "szoscar55";
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>
示例 #2 通过 URI 调用创建 PDO 实例¶
下面的示例假定文件 /usr/local/dbconnect 具有使 PHP 能够读取该文件的文件权限。该文件包含 PDO DSN,用于通过 PDO_ODBC 驱动程序连接到 数据库:
odbc:DSN=SAMPLE;UID=john;然后,PHP 脚本可以通过简单地传递 uri: 参数并指向文件 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();
}
?>
示例 #3 使用别名创建一个PDO实例¶
以下示例假定 php.ini 包含以下条目,以仅使用别名 mydb 启用与数据库的连接:
[PDO] pdo.dsn.mydb=“aci:dbname=localhost:2003/osrdb;charset=ZHS16GBK”
<?php
/* 使用别名连接到一个数据库 */
$dsn = 'mydb';
$user = '';
$password = '';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>