首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PDO::__construct

(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)

PDO :: __ construct - 创建一个表示到数据库的连接的PDO实例

描述

public PDO::__construct ( string $dsn [, string $username [, string $passwd , array $options ]] )

创建一个PDO实例来表示与所请求的数据库的连接。

参数

DSN

数据源名称或DSN包含连接到数据库所需的信息。

通常,DSN由PDO驱动程序名称、后跟冒号、后跟PDO驱动程序特定的连接语法组成。更多信息可从PDO驱动程序特定的文档中获得

dsn参数支持三种不同的方法来指定创建数据库连接所需的参数:

驱动程序调用

dsn :包含完整的DSN。

URI调用

dsnuri:后面的URI 组成,它定义了包含DSN字符串的文件的位置。该URI可以指定本地文件或远程URL。

uri:file:///path/to/dsnfile

别名

dsn由一个名称name映射到pdo.dsn.namephp.ini中来定义DSN字符串。

注意:别名必须在php.ini中定义,而不是.htaccess或httpd.conf

代码语言:txt
复制
 username  

DSN字符串的用户名。对于某些PDO驱动程序,此参数是可选的。

passwd

DSN字符串的密码。对于某些PDO驱动程序,此参数是可选的。

选项

A key=>value array of driver-specific connection options.

返回值

成功则返回PDO对象。

错误/异常

如果尝试连接到所请求的数据库失败,则PDO :: __ construct()将抛出PDOException。

示例

示例#1通过驱动程序调用创建一个PDO实例

代码语言:javascript
复制
<?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通过URI调用创建一个PDO实例

以下示例假定文件/ usr / local / dbconnect存在具有使PHP能够读取文件的文件权限。该文件包含通过PDO_ODBC驱动程序连接到DB2数据库的PDO DSN:

代码语言:javascript
复制
odbc:DSN=SAMPLE;UID=john;PWD=mypass

然后,PHP脚本可以通过传递uri:参数并指向文件URI来创建数据库连接:

代码语言:javascript
复制
<?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启用到MySQL数据库的连接:

代码语言:javascript
复制
[PDO]
pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"
代码语言:javascript
复制
<?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();
}

?>

注意:在PHP5.3版本之前,扩展PDO并实现__call 的类将始终接收小写字母$method

← PDO::commit

PDO::errorCode →

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com