## PDO(PHP Data Object) 介绍
PHP + MySQL 是流行的应用开发搭配方式,PHP支持使用多种数据库,就 MySQL 而言就有 mysql、mysqli、pdo 三种 API 可用。
PHP 中三种主要的 MySQL 连接方式的功能对比:
| | mysqli | PDO | mysql |
| --- | --- | --- | --- |
| 引入的PHP版本 | 5.0 | 5.0 | 3.0之前 |
| PHP5.x是否包含 | 是 | 是 | 是 |
| MySQL开发状态 | 活跃 |在PHP5.3中活跃 | 仅维护 |
| 在MySQL新项目中的建议使用程度 | 首选 | 建议 | 不建议 |
| API的字符集支持 | 是 | 是 | 否 |
| 服务端prepare语句的支持情况 | 是 | 是 | 否 |
| 客户端prepare语句的支持情况 | 否 | 是 | 否 |
| 存储过程支持情况 | 是 | 是 | 否 |
| 多语句执行支持情况 | 是 | 大多数 | 否 |
| 是否支持所有MySQL4.1以上功能 | 是 | 大多数 | 否 |
### 什么是 PDO ?
PDO 扩展为 PHP 访问数据库定义了一个轻量级的一致接口。实现 PDO 接口的每个数据库驱动可以公开具体数据库的特性作为标准扩展功能。
**注意:** PDO 扩展自身并不能实现任何数据库功能,必须使用一个具体数据库的 PDO 驱动来访问数据库服务。
### 为何使用 PDO ?
* PDO 提供了一个数据访问抽象层,不管使用何种数据库,都可以用相同的方法来存取数据。
* PDO 提供了强大的预处理语句功能,可以优化语句的解析时间,并且有效的防止 SQL 注入。
* PDO 提供了更强大友好的异常处理机制。
### 驱动支持
下列驱动目前实现了 PDO 接口:
| 驱动名称 | 支持的数据库 |
| --- | --- |
| PDO_CUBRID | Cubrid |
| PDO_DBLIB | FreeTDS / Microsoft SQL Server / Sybase |
| PDO_FIREBIRD | Firebird/Interbase 6 |
| PDO_IBM | IBM DB2 |
| PDO_INFORMIX | IBM Informix Dynamic Server |
| PDO_MYSQL | MySQL 3.x/4.x/5.x |
| PDO_OCI | Oracle Call Interface |
| PDO_ODBC | ODBC v3 (IBM DB2, unixODBC and win32 ODBC) |
| PDO_PGSQL | PostgreSQL |
| PDO_SQLITE | SQLite 3 及 SQLite 2 |
| PDO_SQLSRV | Microsoft SQL Server / SQL Azure |
| PDO_4D | 4D |
- 基本语法
- PHP标记
- 指令分隔符
- 从HTML中分离
- 注释
- 数据类型
- 布尔值
- 整数
- 浮点数
- 字符串
- 数组
- 对象
- 资源
- 空值
- 变量
- 基础
- 预定义变量
- 变量范围
- 可变变量
- 常量
- 常量语法
- 魔术常量
- 运算符
- 算术运算符
- 赋值运算符
- 位运算符
- 比较运算符
- 递增与递减运算符
- 逻辑运算符
- 字符串运算符
- 数组运算符
- 类型运算符
- 流程控制
- if条件结构
- switch条件结构
- while循环结构
- do-while循环结构
- for循环结构
- foreach循环结构
- 包含文件
- 函数
- 自定义函数
- 可变函数
- 匿名函数
- 递归函数
- 类与对象
- 基本概念
- 属性
- 方法
- 类常量
- 构造函数和析构函数
- 访问控制
- 继承
- 抽象类
- 接口
- Trait
- 重载
- 对象遍历
- 魔术方法
- Final关键字
- 命名空间
- 自动加载
- 错误处理
- 错误显示
- 错误日志
- 错误报告
- 自定义错误处理
- 异常处理
- 异常处理机制
- 扩展异常处理类
- 字符操作
- 数组操作
- 时间操作
- 表单操作
- GET提交
- POST提交
- 文件上传
- 会话控制
- COOKIE操作
- SESSION操作
- 文件操作
- 文件属性
- 读取文件
- 写入文件
- 文件管理
- 文件锁
- 目录处理
- 路径处理
- 网络操作
- HTTP协议
- Socket操作
- CURL操作
- PDO操作
- 介绍
- 连接管理
- 预处理语句
- 事务处理
- 错误处理
- 图像操作
- 正则表达式
- 标准推荐
- 包管理器
- 设计模式
- 常用算法
- 安全防御
- XSS防御
- CSRF防御