本想学pear的,可是网上看到的几篇帖子对adodb的评价相当高,所以改学了这个。
ADODB的优点有这几个(网上说的,不是我说的):
1、速度比pear快一倍;
2、支持的数据库类型比pear多很多,甚至可以支持ACCESS;
3、无须安装,无须服务器支持(对新手来说,这点很重要吧)
不知道adodb是什么或是想下载adodb的朋友可以去这个链接看看:http://www.phpe.net/class/106.shtml
另外,如果哪位兄弟翻译了README的全文或知道哪里有译文请给我回个帖,谢谢。
Tutorial
Example 1: Select Statement
任务: 连接一个名为Northwind的Access数据库, 显示 每条记录 的前两个字段.
在这个实例里, 我们新建了一个ADOC连接(ADOConnection)对象, 并用它来连接一个数据库. 这个连接采用PConnect 方法, 这是一个持久 连接. 当我们要查询数据 库时, 我们可以随时调 用这个连接的Execute()函数. 它会返回一个ADORecordSet对象 which is actually a cursor that holds the current row in the array fields[]. 我们使用MoveNext()从一个记录转向下一个记录 .
NB: 有一 个非常实用的函数 SelectLimit在本例中没有用到, 它可以控制显示的记录数(如只显示前十条记录 ,可用作分页显示 ).
PHP:--------------------------------------------------------------------------------
include('adodb.inc.php'); #载入ADOdb
$conn = &ADONewConnection('access'); # 新建一个连接
$conn->PConnect('northwind'); # 连接到一个名为northwind的MS-Access数据库
$recordSet = &$conn->Execute('select * from products'); #从products数据表中搜索所有数据
if (!$recordSet)
print $conn->ErrorMsg(); //如果数据搜索发生错误显示错误信息
else
while (!$recordSet->EOF) {
print $recordSet->fields[0].' '.$recordSet->fields[1].'
';
$recordSet->MoveNext(); //指向下一个记录
} //列表显示数据
$recordSet->Close(); //可选
$conn->Close(); //可选
?>
--------------------------------------------------------------------------------
$recordSet在$recordSet->fields中返回当前数组, 对字段进行数字索引(从0开始). 我们用MoveNext() 函数移动到下一个记录 . 当数据库搜索到结尾时EOF property被 设置 为true. 如果Execute()发生错误 , recordset返回flase.
$recordSet->fields[]数组产生于PHP的数据库扩展。有些数据库扩展只能按数字索引而不能按字段名索引.如果坚持要使用字段名索引,则应采用SetFetchMode函数.无论采用哪种格式索引,recordset都可以由Execute()或SelectLimit()创建。
PHP:--------------------------------------------------------------------------------
$db->SetFetchMode(ADODB_FETCH_NUM);
$rs1 = $db->Execute('select * from table'); //采用数字索引
$db->SetFetchMode(ADODB_FETCH_ASSOC);
$rs2 = $db->Execute('select * from table'); //采用字段名索引
print_r($rs1->fields); # shows array([0]=>'v0',[1] =>'v1')
print_r($rs2->fields); # shows array(['col1']=>'v0',['col2'] =>'v1')--------------------------------------------------------------------------------
如果要获取记录号,你可以使用$recordSet->RecordCount()。如果没有当前记录则返回-1。
实例 2: Advanced Select with Field Objects
搜索表格,显示前两个字段. 如果第二个字段是时间或日期格式,则将其改为美国标准时间格式显示.
PHP:--------------------------------------------------------------------------------
include('adodb.inc.php'); ///载入adodb
$conn = &ADONewConnection('access'); //新建一个连接
$conn->PConnect('northwind'); //连接名为northwind的MS-Access数据库
$recordSet = &$conn->Execute('select CustomerID,OrderDate from Orders'); //从Orders表中搜索CustomerID和OrderDate两个字段
if (!$recordSet)
print $conn->ErrorMsg(); //如果数据库搜索错误,显示错误信息
else
while (!$recordSet->EOF) {
$fld = $recordSet->FetchField(1); //把第二个字段赋值给$fld
$type = $recordSet->MetaType($fld->type); //取字段值的格式
if ( $type == 'D' || $type == 'T')
print $recordSet->fields[0].' '.
$recordSet->UserDate($recordSet->fields[1],'m/d/Y').'
'; //如果字段格式为日期或时间型,使其以美国标准格式输出
else
print $recordSet->fields[0].' '.$recordSet->fields[1].'
'; //否则以原样输出
$recordSet->MoveNext(); //指向下一个记录
}
$recordSet->Close(); //可选
$conn->Close(); //可选
?>
--------------------------------------------------------------------------------
在这个例子里, 我们用FetchField()函数检查了第二个字段的格式. 它返回了一个包含三个变量的对象
name: 字段名
type: 字段在其数据库中的真实格式
max_length:字段最大长度,部分数据库不会返回这个值,比如MYSQL,这种情况下max_length值等于-1.
我们使用MetaType()把字段的数据库格式转化为标准的字段格式
C: 字符型字段,它应该可以在标签下显示.
X: 文本型字段,存放比较大的文本,一般作用于
0
0
相关文章
Sulu CMS 中为导航项动态注入页面图标字段的完整实现方案
如何在PHP表单提交中持久化更新关联数组
Sulu CMS 中为导航项动态注入页面图标数据的实现方案
php源码读取大文件超时_调高maxexecutiontime与分块读取【技巧】
负载均衡是什么原理_服务器流量分发实现方法【详解】
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。
705
2026.02.13
本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。
233
2026.02.13
本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。
117
2026.02.13
本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。
22
2026.02.13
本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。
61
2026.02.13
本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。
15
2026.02.12
本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。
669
2026.02.12
本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。
58
2026.02.12
热门下载
相关下载
精品课程
最新文章


