含光混世贵无名,孤高何用比云月
PDO

查询结果如下:

详细条目 英文搜索 <<快速查询:
PDO(PHP Data Objects)是一种在PHP里连接数据库的使用接口。PDO与mysqli曾经被建议用来取代原本PHP在用的mysql相关函数,基于数据库使用的安全性,因为后者欠缺对于SQL注入的防护。


目录

  1. 1相关概念
  2. 2安装配置
  3. Unix系统
  4. Windows系统
  5. 3程序示例
  6. 4数据库支持

>相关概念

PHP 数据对象(PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口。实现 PDO 接口的每个数据库驱动可以公开具体数据库的特性作为标准扩展功能。 注意利用 PDO 扩展自身并不能实现任何数据库功能;必须使用一个具体数据库的 PDO 驱动来访问数据库服务。
PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。 PDO不提供数据库抽象层;它不会重写 SQL,也不会模拟缺失的特性。如果需要的话,应该使用一个成熟的抽象层。
从 PHP 5.1开始附带了 PDO,在 PHP 5.0 中是作为一个 PECL 扩展使用。 PDO 需要PHP 5核心的新OO特性,因此不能在较早版本的 PHP 上运行。 

>安装配置

>Unix系统

1. 自 PHP 5.1.0 起,PDO 和PDO_SQLITE驱动默认可用。对于自己选择的数据库,需要启用相应的 POD 驱动。
2. 当作为一个共享模块安装 PDO 时,需要更新 php.ini 文件以便当 PHP 运行时 PDO 扩展能被自动加载。还需要在那里启用具体的数据库驱动;确保它们被列在 pdo.so 那一行之后,因为 PDO 必须在具体的 数据库扩展被载入前初始化。如果静态地构建 PDO 和 具体数据库扩展,可以跳过此步。
extension=pdo.so

>Windows系统

1. PDO 和所有主要的驱动作为共享扩展随 PHP 一起发布,要激活它们只需简单地编辑php.ini文件:extension=php_pdo.dll
2.选择其他具体数据库的 DLL 文件,然后要么在运行时用dl()载入,要么在php.ini中的php_pdo.dll后面启用。例如:
extension=php_pdo.dll
extension=php_pdo_firebird.dll
extension=php_pdo_informix.dll
extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
extension=php_pdo_oci8.dll
extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
那些 DLL 文件应该在系统的extension_dir中存在。
*记住:更改php.ini文件后需要重启 PHP 服务才能使新的配置指令生效。 

>程序示例

以下是一个简单的 PDO 更新交易数据库的代码,其中采用了预处理的方式将运行语句与参数隔离:
$query = "UPDATE `payment` SET `status` = '2', `id` = ?, `method` = ? WHERE `payment_id` = ? and `status` = '1'";
$stmt = $this -> pdo -> prepare($query);
$stmt -> bindParam(1, $id);
$stmt -> bindParam(2, $type);
$stmt -> bindParam(3, $payment_id);
$result = $stmt -> execute();
?> 

>数据库支持

firebird
informix
mysql
mssql
odbc
pgsql
sqlite 

简典