PDO

PDO(PHP Data Objects)是一种在PHP里连接数据库的使用接口。PDO与mysqli曾经被建议用来取代原本PHP在

用的mysql相关函数,基于数据库使用的安全性,因为后者欠缺对于SQL资料隐码的防护。

并不能使用PDO扩展本身执行任何数据库操作,必须使用一个database-specific PDO driver(针对特定数据库

的PDO驱动)访问数据库服务器。PDO并不提供数据库抽象,它并不会重写SQL或提供数据库本身缺失的功能,

如果你需要这种功能,你需要使用一个更加成熟的抽象层。PDO需要PHP5核心OO特性的支持,所以它无法运行于

之前的PHP版本。


在Unix环境下PHP5.1以上版本中:

如果你正在使用PHP5.1版本,PDO和PDO SQLITE已经包含在了此发行版中;当你运行configure时它将自动启用。

推荐你将PDO作为共享扩展构建,这样可以使你获得通过PECL升级的好处。推荐的构建支持PDO的PHP的configure

line应该也要启用zlib。你也应该启用你选择的数据库的PDO驱动 ;关于这个的更多信息请查看database-

specific PDO drivers ,但要注意如果你将PDO作为一个共享扩展构建,你必须也要将PDO驱动构建为共享扩展。

SQLite扩展依赖于PDO,所以如果PDO作为共享扩展构建,SQLite也应当这样构建

./configure --with-zlib --enable-pdo=shared --with-pdo-sqlite=shared --with-sqlite=shared


将PDO安装为一个共享模块后,你必须编辑php.ini文件使得在PHP运行时自动载入PDO扩展。你同样需要启用

那儿的特定数据库驱动;确保他们列出在 pdo. so 行之后,因为PDO必须在特定数据库驱动载入之前初始化。

如果你是以静态方式构建的PDO和特定数据库驱动扩展,你可以跳过这一步。

extension=pdo. so


让PDO作为一个共享的模块将使你可以在新版PDO发布时运行 pecl upgrade pdo 命令升级,而不用强制你重新

构建整个PHP。注意如果你是这样做的,你也需要同时升级你的特定数据库驱动。

在windows环境下PHP5.1以上版本中:

PDO和主要数据库的驱动同PHP一起作为扩展发布,要激活它们只需简单的编辑php.ini文件:

extension=php_pdo.dll


然后,选择针对特定数据库的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 目录里。

注意 PDO_INFORMIX 只能作为一个PECL扩展使用。

========================================================================================

PHP 5.1 发布时将附带一个全新的数据库连接层,即 PHP Data Objects (PDO)。虽然 PHP 一直都拥有很好

的数据库连接,但 PDO 让 PHP 达到一个新的高度。学习如何获得、安装和使用 PDO,以连接到 IBM? DB2?

 Universal Database? 和 IBM Cloudscape? 数据库,插入和检索数据,并探索更多高级特性,例如预处理语句

(prepared statements)、绑定参数(bound parameters)、可滚动游标(scrollable cursors)、定位更新

(positioned updates)以及 LOB。




随着拥有更成熟 OO 语法的 PHP 5 的发布,PHP 越来越多地受到越来越大的机构的关注,对于 PHP 来说,提供

更加一致的和可访问的数据访问 API 变得越来越重要。

PHP 与流行的开放源代码关系数据库管理系统(RDBMS)MySQL 之间总是很有默契。这对拍档的成功很大程度上

是由于它们免费可用,而且进入的门槛也比较低,这两种产品的合作使它们各自都取得了广受推崇的地位。

很多 PHP 应用程序开发人员都习惯于 PHP-MySQL 这对组合,以致 PHP 对其他数据库的支持常常模仿 MySQL

客户机库 API。然而,并不是所有的数据库客户机 API 都是一样的,也不是所有的数据库都提供相同的特性。

虽然存在模仿,但不同的 PHP 数据库扩展都有它们各自的怪僻和不同之处,所以从一种数据库迁移到另一种数据库

时会有一些困难。虽然这不是创建 PDO 的直接原因,但是在设计过程中还是有一定影响的。

如果您是带着想结合使用 PHP 和 DB2 的目的阅读本文,那么您很可能属于以下类型中的一种:

您从一家小公司开始,在 MySQL(举个例子)上运行 PHP,由于业务增长,您需要 DB2 所提供的可伸缩性/可靠性

/支持或其他特性。您希望移植代码,以使用 DB2,但由于 API 的变化,您需要编写或实现一个抽象层,以便在

DB2 上测试应用程序的同时可以继续在旧的数据库上运行。不仅如此,您还希望能有自己的选择,并保留支持其他

 RDBMS 的可能性,因为您清楚,有些客户机可能已经和其他平台栓在一起了。

您用 PHP 在 MySQL之上构建了一个小型的部门应用程序(同样,这只是举个例子,我并不是要跟 MySQL 过不去)。

事实证明这个应用程序本身很有用,现在已经在这个部门之外使用,并且闯入了 CIO/CTO 的法眼 —— 现在需要

遵从托管的标准数据库。(是的,这是第一点的一个变种。) 在其他某些复杂的企业级应用程序的后台,您已经

有一个 DB2 实例;您希望利用 PHP 的快速应用程序开发和原型设计来生成动态报告。


execute 主要执行dml语句  执行一条预处理语句

prepare 预处理语句

exec 执行一条sql语句,并返回受影响的行数




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值