首页 » 建站技术 » PHP 技术 » 浏览内容

PDO入门


2008-11-20 22:17:10 5,391 1 发表评论 字体: 作者:C.K.
标签: pdophp

体验版 88 元,个人版 128 元,多用户版 288元个人版160元升级到多用户版。

上周代码走查的时候准备的一份关于PDO的概要文档。大部分内容来源于php手册关于PDO的翻译。放在草稿里也是放着不如拿出来给大家共享下。

什么是PDO?

PDO是php的一个扩展, 它为PHP访问数据库定义了一个轻量级的、一致性的接口。提供了一个数据访问抽象层,无论你使用什么数据库,你都可以通过一致的函数执行查询和获取数据。PDO随PHP5.1发行,在PHP5.0中可以作为php的一个PECL扩展使用。PDO需要PHP5核心OO特性的支持,所以它无法运行于之前的PHP5之前的版本。在PHP 6只默认使用PDO来处理数据库。
插曲:Pear与Pecl的区别?
Pear:(PHP Extension and Application Repository)是PHP的扩展代码包,所有的扩展均以PHP代码的形式出现,使用的时候,要在代码中进行Include才能够使用。
Pecl:是PHP的标准扩展,可以补充实际开发中所需的功能,所有的扩展都需要安装,在Windows下面以Dll的形式出现,在linux下面,需要单独进行编译,它的表现形式为根据PHP官方的标准用C语言写成,尽管源码开放但是一般人无法随意更改源码。
最直接的表述:Pear是PHP的上层扩展,Pecl是PHP的底层扩展。

为什么选择PDO?

PDO与ADOdb、PEAR::DB、PHPlib::DB 相比怎么样,后者烦琐而且低效,PDO是php的一个底层的扩展,而后者是php代码实现的,效率上是不言而喻的,
从应用趋势上来看,PDO随PHP5.1发行,PHP 6只默认使用PDO来处理数据库。
还可以通过预处理语句来防止sql注入

如何安装PDO?

这里只说下 FreeBSD下的安装:
#cd /usr/ports/databases/php5-pdo
#make install clean
安装了这个仅仅是安装好了PDO的驱动,这时候还是连接不到任何数据库的。还需要安装具体数据库的连接驱动.我一般也就装PDO_MYSQL,PDO_PGSQL,PDO_SQLITE。
#cd /usr/ports/databases/php5-pdo_mysql
#make install clean
安装好了之后,重起apache,再看phpinfo,应该可以看到pdo的项目了。如果没有就去看一下
vi /usr/local/etc/php/extensions.ini
看看有没有下面这写,没有就自己加上去,重起apache即可.
extension=pdo.so
extension=pdo_pgsql.so
extension=pdo_mysql.so
extension=pdo_sqlite.so

PDO的方法 :
PDO::exec()  主要是针对没有结果集合返回的操作,比如INSERT、UPDATE、DELETE等操作,它返回的结果是当前操作影响的列数。
PDO::query() 主要是用于有记录结果返回的操作,特别是SELECT操作,
PDO::prepare() 主要是预处理操作,需要通过$rs->execute()来执行预处理里面的SQL语句
PDO::query()和PDO::prepare()将返回一个 PDOStatement object 对象
PDOStatement::fetchColumn() 是获取结果指定第一条记录的某个字段,缺省是第一个字段。PDOStatement::fetch() 是用来获取一条记录,
PDOStatement::fetchAll()是获取所有记录集到一个中,获取结果可以通过PDOStatement::setFetchMode来设置需要结果集合的类型。
PDO::lastInsertId()是返回上次插入操作,主键列类型是自增的最后的自增ID。
PDOStatement::rowCount()主要是用于PDO::query()和PDO::prepare()进行DELETE、INSERT、UPDATE操作影响的结果集,对PDO::exec()方法和SELECT操作无效
PDO::setAttribute():Sets an attribute on the database handle
PDO::ATTR_CASE: 强制列名变成一种格式,
PDO::CASE_LOWER: 强制列名是小写.
PDO::CASE_NATURAL: 列名按照原始的方式
PDO::CASE_UPPER: 强制列名为大写.

PDO::ATTR_ERRMODE: 错误提示.
PDO::ERRMODE_SILENT: 不显示错误信息,只显示错误码.
PDO::ERRMODE_WARNING: 显示警告错误.
PDO::ERRMODE_EXCEPTION: 抛出异常.
PDO::NULL_NATURAL: 不变.
PDO::NULL_EMPTY_STRING: Empty string is converted to NULL.
PDO::NULL_TO_STRING: NULL is converted to an empty string.
PDO::ATTR_STRINGIFY_FETCHES: Convert numeric values to strings when fetching. Requires bool.
PDO::ATTR_STATEMENT_CLASS: Set user-supplied statement class derived from PDOStatement. Cannot be used with persistent PDO instances. Requires array(string classname, array(mixed constructor_args)). PDO::ATTR_AUTOCOMMIT (available in OCI, Firebird and MySQL): Whether to autocommit every single statement.
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY (available in MySQL): Use buffered queries.

1 2

网站统计 Statistics

  • 创建时间: 2005年1月3日 距今5041 天
  • 日志总数: 2461
  • 评论总数: 630
  • 标签总数: 654
  • 链接总数: 273
  • 最后更新: 2018-8-31 17:57:04
  • 您是本站第 14061191 位访客

广告区 Guǎng Gào