ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 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 |