(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDO::__construct — 创建一个表示数据库连接的 PDO 实例
说明
$dsn
[, string $username
[, string $password
[, array $driver_options
]]] )创建一个表示连接到请求数据库的数据库连接 PDO 实例。
参数
- dsn
-
数据源名称或叫做 DSN,包含了请求连接到数据库的信息。
通常,一个 DSN 由 PDO 驱动名、紧随其后的冒号、以及具体 PDO 驱动的连接语法组成。更深入的信息能从 PDO 具体驱动文档找到。
The
dsn
参数支持三种不同的方式 创建一个数据库连接:- Driver invocation
-
dsn
包含完整的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:
别名必须得在 php.ini 中定义了,不能是在 .htaccess 或 httpd.conf 中 。
- username
-
DSN字符串中的用户名。对于某些PDO驱动,此参数为可选项。
- password
-
DSN字符串中的密码。对于某些PDO驱动,此参数为可选项。
- driver_options
-
一个具体驱动的连接选项的键=>值数组。
返回值
成功则返回一个PDO对象。
成功则返回一个PDO对象。
错误/异常
如果试图连接到请求的数据库失败,则PDO::__construct() 抛出一个 PDO异常(PDOException) 。
(PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
PDO::exec — 执行一条 SQL 语句,并返回受影响的行数
说明
$statement
)PDO::exec() 在一个单独的函数调用中执行一条 SQL 语句,返回受此语句影响的行数。
PDO::exec() 不会从一条 SELECT 语句中返回结果。对于在程序中只需要发出一次的 SELECT 语句,可以考虑使用 PDO::query()。对于需要发出多次的语句,可用 PDO::prepare() 来准备一个 PDOStatement 对象并用 PDOStatement::execute() 发出语句。
返回值
PDO::exec() 返回受修改或删除 SQL 语句影响的行数。如果没有受影响的行,则 PDO::exec() 返回 0。
PDO::setAttribute — 设置属性
说明
$attribute
, mixed $value
)设置数据库句柄属性。下面列出了一些可用的通用属性;有些驱动可能使用另外的特定属性。
-
PDO::ATTR_CASE:强制列名为指定的大小写。
-
PDO::CASE_LOWER:强制列名小写。
-
PDO::CASE_NATURAL:保留数据库驱动返回的列名。
-
PDO::CASE_UPPER:强制列名大写。
-
-
PDO::ATTR_ERRMODE:错误报告。
-
PDO::ERRMODE_SILENT: 仅设置错误代码。
-
PDO::ERRMODE_WARNING: 引发 E_WARNING 错误
-
PDO::ERRMODE_EXCEPTION: 抛出 exceptions 异常。
-
-
PDO::ATTR_ORACLE_NULLS(在所有驱动中都可用,不仅限于Oracle): 转换 NULL 和空字符串。
-
PDO::NULL_NATURAL: 不转换。
-
PDO::NULL_EMPTY_STRING: 将空字符串转换成
NULL
。 -
PDO::NULL_TO_STRING: 将 NULL 转换成空字符串。
-
-
PDO::ATTR_STRINGIFY_FETCHES: 提取的时候将数值转换为字符串。 Requires bool.
-
PDO::ATTR_STATEMENT_CLASS: 设置从PDOStatement派生的用户提供的语句类。 不能用于持久的PDO实例。 需要 array(string 类名, array(mixed 构造函数的参数))。
-
PDO::ATTR_TIMEOUT: 指定超时的秒数。并非所有驱动都支持此选项,这意味着驱动和驱动之间可能会有差异。比如,SQLite等待的时间达到此值后就放弃获取可写锁,但其他驱动可能会将此值解释为一个连接或读取超时的间隔。 需要 int 类型。
-
PDO::ATTR_AUTOCOMMIT(在OCI,Firebird 以及 MySQL中可用): 是否自动提交每个单独的语句。
-
PDO::ATTR_EMULATE_PREPARES启用或禁用预处理语句的模拟。 有些驱动不支持或有限度地支持本地预处理。使用此设置强制PDO总是模拟预处理语句(如果为
TRUE
),或试着使用本地预处理语句(如果为FALSE
)。如果驱动不能成功预处理当前查询,它将总是回到模拟预处理语句上。 需要 bool 类型。 -
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY(在MySQL中可用): 使用缓冲查询。
-
PDO::ATTR_DEFAULT_FETCH_MODE: 设置默认的提取模式。
-
返回值
成功时返回
TRUE
, 或者在失败时返回FALSE
。