PDO是什么

PDO(PHP Data Objects)是一种在 PHP 里联接数据库的应用插口 。PDO 与 mysqli 曾经被提议用于替代本来 PHP 在用的 mysql 相关函数 , 根据数据库应用安全性 , 由于后者缺乏针对 SQL 引入的防护 。

PDO是什么

文章插图
有关定义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
程序实例以下是一个简单的 PDO 升级买卖数据库的代码 , 其中使用了预处理的形式将运作句子与参数防护:
<?php
$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();
?>
【PDO是什么】