Pear DB 新手入门指南教程
|
1. 简介这是一部指导我们如何使用Pear DB扩展。Pear DB,提供这样一系列的类: n 数据库抽象 n 高级错误处理机制 n 以及其它 2. 下载、安装Pear由于现在Pear项目仍处于紧锣密鼓的开发之中,所以得到它的最好办法就是从CVS获得(Pear DB发行包已经跟随PHP4.0.6以后版本捆绑发布)。所以,我们只需要把Pear的根目录放到php.ini配置文件include_path中。也可以通过这样设置:_set('include_path','/pear_base_dir'). 以下是strp by step示例: 获得PHP CVS的完全文档 注意Pear DB必需PHP版本4.0.4以上,而在Pear中的一些其他包如:XML Parser of the pear installer script需要PHP4.0.5以上版本。 3. 使用Pear DB 3.1 连接,断开数据库 数据源(上例中的$dsn 参数)有以下允许的格式:(从Pear/DB.php的parseDSN方法复制而来) 现在支持的数据库有 (在 phptype DSN 部分): 注意并不是所有数据库特征都支持,可以从 3.2 执行数据库 3.3 获得select的数据3.3.1 获取数据的函数 除了fetchRow()还可以使用fetchInto()直接插入$row的值。 3.3.2 选择获取数据的格式 获取模式有DB_FETCHMODE_ORDERED(默认),DB_FETCHMODE_ASSOC and DB_FETCHMODE_OBJECT. 从获取数据方法返回的结果示例: 3.3.3 设置获取数据的格式 可以使用 fetchrow() / fetchInto() 方法或者为你的DB实例设置一个默认的模式。 3.3.4 控制获取数据数量 同时Pear DB获取数据可以带有额外的参数,可以使用一个数字参数来获取需要的数据数量。在你只需要获得数据中的一部分时这时候特别有用(比如在做分页程序的时候) 3.3.5 清除结果,释放变量 当你完成查询的时候,可以用free()方法来结束: 3.4 快速retrieve数据 当你不再想用fetchRow()方法来获取数据的时候,Pear DB通过sql语句提供一些特别的方法来返回想要的数据。这些方法有:getOne,getRow,getCol,getAssoc and getAll. 这有一些使用示例: "get*() 系列方法" 可以为你做很多事情,包括: 发起一个查询,获取数据和清除结果。请注意所有的Pear DB函数将可能返回一个 Pear DB_error 对象。 3.5 从查询结果获得更多信息(numRows,numCols,affectedRows,tableInfo) 通过 Pear DB可以从查询结果获得更多有用的数据信息 。这些方法有:
示例: 3.6 自动增长(Sequences) Sequences 为数据行提供独一无二的ID标识。如果熟悉MySQL之类的话,可以把它想象为AUTO_INCREMENT.它非常简单,首先你获取一个ID,然后在这个ID所在的行插入你所需要记录的数据。可以为你的表设置更多的Sequences,只需要保证在任何特殊的表中都使用一样的sequence就行。 3.7 Prepare & Execute/ExcuteMultiple 3.8 autoCommit,commit and rollback 4. 可用方法列表 5. 错误处理机制 5.1. 从Pear DB Error获得错误信息 所有从Pear DB 返回的错误都是Pear Errors. 这有一种方法来搜集: 4.2 Debug Pear DB Errors Pear DB采用一种轻便的错误消息系统向用户报错。把错误信息简单翻译成其它语言或者对于一种特殊错误采取特殊的处理方式这都带来了很大的优点。但是对于开发人员来说这些提示并么有提供很有用的信息。想要得到真实的数据处理出错的信息,你可以使用getDebugInfo()方法: 通过当一个PHP函数出错时,会打印出出错提示。在pear中的这种机制被屏蔽了。但时有时你可能需要在代码中捕捉一些错误信息。可以使用set_error_handler PHP 函数,从 PHP Manual获取信息.简单示例: 5.3 对错误采取自动处理 正如你所看见的, Pear DB提供了广泛的错误检测和报告机制,这强迫开发人员必需对返回的数据结果进行检查,是否有错。 Pear DB同时照顾我们避免这种痛苦的工作,提供了一种灵活的体系,在一个错误出现的时候自动调用相应的措施。 这些可能的措施包括:
简单示例: 高级示例: 下面为扩展错误机制提供了一个很好的想法: (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
