2.DB::common界面刚刚的$conn就是这个界面类型的实体,这个界面将负责大部分的数据工作,包括select, update, insert等等。这个界面包含了大量功能强大的函式,不过我将介绍几个重要的。
[code]
--Select
$sql = “SELECT * FROM blah”;
$conn->setFetchMode(DB_FETCHMODE_ASSOC);
$result = $conn->query($sql);
$row = $result->fetchRow();
print_r($row);
$conn->disconnect();
[/code]
如果你熟悉PHP的数据库
方法的话,应该对[x]_fetch_assoc不会陌生,没错,意思大致上相同。DB::common 的默认设定是DB_FETCHMODE_ORDERED, 和[x]_fetch_row大致上相同,以上例子我将fetchmode利用DB::common::setFetchMode()将它改为DB_FETCHMODE_ASSOC,得出的$result将会和[x]_fetch_assoc相同,都是以fieldname作为引索。这里的$result( DB::result ) 和mysq_query()所传回的差不多,是PEAR DB里面另外一个重要的类型,稍候会作介绍;如果需要得到一行的数据,可以用DB::result::fetchRow(),就可传回一个数据行的阵列。
之前所提到的PEAR::isError()也可以用来检查$result的结果是否有错误。编码如下:
[code]
if(PEAR::isError($result)){
die($result->getMessage());
}
[/code]
和之前一样如法炮制,只是将
对象由DB::common改成DB::result。
DB::common也提供了两个很方便的方法让PHP能够简单地处理INSERT和UPDATE,prepare()和execute(),这两个组合可以让你很轻松的同时处理多个INSERT和UPDATE statement。prepare()主要现载入需要执行的statement,而execute将负责执行,同时也载入所需的参数。看看以下的例子:
[code]
$conn->prepare(“INSERT INTO foo (fname, fage, flocation) VALUES (? , ? , ? )”);
$data = array(“foo”,23,”earth”);
$conn->execute($stn, $data);
if(PEAR::isError($stn)){
die($stn->getMessage());
}
$conn->freePrepared();
[/code]
“?”这里是代表参数,$data里面的数据会依次序被传入prepare()里面的statement里面的”?”参数。所有的数据将会自动呼叫escaped string来将一些意义符号字串化,而且execute()也会自动辨认数据类型,例如数字,字串等等。那么如果要输入超过一行以上的数据呢?可以简化吗?答案是肯定可以了,参考下面的例子你就会发现,DB是多么不可思议了
[code]
$conn->prepare(“INSERT INTO foo (fname, fage, flocation) VALUES (? , ? , ? )”);
$data = array(array(“foo”,23,”earth”),
array(“faa”,21,”moon”),
array(“fee”,25,”mars”)
array(“fii”,19,”Pluto”));
$conn->executeMultiple($stn, $data);
if(PEAR::isError($stn)){
die($stn->getMessage());
}
$conn->freePrepared();
[/code]
几个繁杂的程序在几行就可以完成了,关键就在于$data和DB::common::executeMultiple()。$stn是execute()或executeMultiple()所传回的结果,他有三种可能性:第一,DB::result,可以将statement的结果数据转为result实体;第二,定义常数DB_OK,代表statement成功执行;第三,DB error实体,后面的PEAR::isError()就是检查传回是否为DB error。如果要用同一个DB::common资源进行另一个query,必须呼叫DB::common::freePrepared()来清除之前prepared()内的statement。
DB::common可以说是PEAE DB的最重要的工作界面,大部分和数据的接触都在这里进行,而且功能也强大。除了以上说明的几个方法之外,DB::common还有很多个方法也是很实用的。详细的说明可以到pear.php.net查看。
待续..
相关推荐
PEAR 数据库操作插件 提供mysql,mssql,....的数据库德操作
例如,使用 PEAR DB 模块可以将数据库连接字符串抽象出来,使代码更加易于维护和修改。 问题 2:不使用自动增量功能 不使用自动增量功能是另一个常见问题。自动增量功能可以自动为每条记录生成惟一标识符,避免了...
PEAR 博文链接:https://spamer.iteye.com/blog/158148
PEAR中Database(DB)使用介绍
Pear DB,提供这样一系列的类: n 数据库抽象 n 高级错误处理机制 n 以及其它 2. 下载、安装Pear 由于现在Pear项目仍处于紧锣密鼓的开发之中,所以得到它的最好办法就是从CVS获得(Pear DB发行包已经跟随PHP4.0.6...
下载后在PHP安装目录下...这个包是我最近才更新的,因为Pear是实时更新的,所以并不保证是最新版,有能力自己安装的朋友还是自己安装的为好。 如何安装Pear和使用Pear可以参考文章:不能正常看请您注册或登陆! ...
不用多说了,一本pear的好书,值得下载,机不可失 不用多说了,一本pear的好书,值得下载,机不可失 不用多说了,一本pear的好书,值得下载,机不可失 不用多说了,一本pear的好书,值得下载,机不可失
PHP核心教程 php pear php pear php pear php pear php pear php pear
pear 英文版 对于入门级 pear 选手 适合
老版PHP用go-pear.php,新版用go-pear.phar 用cmd命令行下:php.exe 文件名 试一下就知道了
pear_2.3.5_D.apk
pear_2.1.6(2).apk
php pear install pear安装包
go-pear go-pear go-pear go-pear go-pear go-pear
PHP PEAR 安装包 go-pear.phar
Windows 安装Pear所需的文件,包含了go-pear.php以及go-pear.phar
PEAR::DB::OO 是一个抽象层,用于访问面向对象范式中的数据库表。 它面向 PHP 开发人员,是用 PHP 编写的。 它建立在 PEAR 的过程数据库抽象层 (PEAR::DB) 之上——请参阅 http://pear.php.net。