php adodb介绍_php基础_脚本之家

PHP ADODB
1.99版手册汉译翻译小编:Tripc修正作者:heiyeluren———————————————-校正表达:因为后面包车型客车版本是台湾版的,所以重重语句不切合大陆的运用习贯,于是自身多少用Editplus改革了弹指间,希望给上学ADODB的老同志们二个参阅。(heiyeluren修正于二零零五-6-22卡塔尔(قطر‎ADODBPHP
在数据库的支撑上是很令人大快人心的,大概具备的资深数据库系统都有相应的函数群扶持,并且扶持的很完整。但十分不幸的,每一堆数据库帮衬函数无论在名称或参数布局上,都有十分大的间隔,那使得PHP的系统开辟者在面临改造数据库时,总会感到难受异常。难道那几个主题素材就从未化解措施呢?呵呵,当然有,答案正是本身前些天要介绍的
ADODB
那么些PHP物件。ADODB提供了完全的章程和总体性让技术员去决定数据库系统,更棒的是你只要记得它的功力就好了,因为不相同的数据库系统,只要改正二个属性值就足以了,ADODB会自动根据设定取用正确的PHP函数。别的,最多再同盟数据库系统修改校订SQL指令,你的PHP系统就能够在最短的日子内更动来另两个数据库系统了,假使在编写程序时,对SQL指令能做稳妥规划,那就更加快了。经过以上的介绍,相信您曾经对ADODB的功用有所精晓,以下为ADODB的详实介绍。得到ADODB你可以在
获得最新版的ADODB。作者在编辑本文时,最新版本是1.99版,版权采BSD-Style及LGPL双轨制,换句话正是Freeware,未有何范围。但在获得ADODB后,最佳照旧要看一下有关版权表达及用法,并和本文相比一下,以防错误。使用ADODB基本上采取ADODB是一对一轻易的,得到压缩文件后解开,笔者建议将全部内容都解到ADODB的目录里。然后你能够一边参谋本文,一边探讨之中的轨范,就位于中间的test目录下。由于ADODB附上的证实十三分总体详实,以下的验证大部份来自ADODB的readme.htm,这里不是全方位的剧情,笔者把部分本人以为并未有用的从头到尾的经过都去掉了,像版本差距表达、何编写扶持ADODB的驱动程序等与利用非亲非故的部份。想要了然全部内容的读者依旧得以协和去参照他事他说加以考查readme.htm。——————————————————————————–简要介绍特色安装运转ADODBADONewConnectionNewADOConnection协理的数据库学习手册范例1 : Select楷模 2 : 进级 Select轨范 3 : Insert轨范 4 : 除错及 rs2html
典范模范 5 : MySQL 及选单榜样 6 : 二遍三回九转四个数据库轨范 7 :
发生更新及新添的SQL指令表率 8 :
用下一笔及上单笔实作卷动客制化错误处理及PEAKoleos错误数据集快取参谋手册ADOConnection连接数据库:Connect
PConnect推行SQL:Execute CacheExecute SelectLimit CacheSelectLimit
Prepare PrepareSP GetOne GetRow发生 更新/新添:GetUpdateSQL
GetInsertSQLBLOB : UpdateBlob UpdateClob UpdateBlobFile换页/卷页 :
PageExecute CachePageExecute消亡 : CacheFlush Close交易 : BeginTrans
CommitTrans RollbackTrans提取数据 : $ADODB_FETCH_MODE
BlankRecordSet字串 : Concat qstr日期 : DBDate DBTimeStamp UnixDate
UnixTimeStamp列微处理器 : Affected_Rows Insert_ID GenID错误管理 :
ErrorMsg ErrorNo数据辞书 : MetaDatabases Meta

固然如此 PHP 是建设构造 Web 系统强有力的工具,但是 PHP
存取数据库的意义,一向未能标准化,各项数据库,都使用另一种差别且不包容的应用程序接口。为了增加补充这一个缺憾,由此才有
ADODB
的出现。一旦存取数据库的接口予以标准,就会掩没各样数据库的反差,若欲转变至别的差别的数据库,将变得拾分便于。
近些日子 ADODB最新版本是V4.62,协理的数据库种类极度地多,举个例子:MySQL,
PostgreSQL, Interbase, Informix, Oracle, MS SQL 7, Foxpro, Access, ADO,
Sybase, DB2 以至平常的 ODBC (个中 PostgreSQL、Informix、Sybase 的driver
是由自由软件社会群众体育发展之后进献出来的卡塔尔国。 使用 ADODB
最大的独特之处之一是:不管后端数据库怎么样,存取数据库的方法都是同出一辙的,开拓设计人员不要为了某一套数据库,而必需再念书另一套不相同的存取方法,那大大缓解开采人士的学问担负,过去的学识将来仍可世袭应用,转移数据库平台时,程序代码也无需做太大的改造。
其实 ADODB 那样的腾飞思想,而不是首创的,DBI 比 ADODB 现身得更早,它提供
Perl 存取数据库时,使用同样的 API 呼叫接口。相信用过 Perl + DBI
的朋友,再来用 ADODB 时,会有一种一点钟情的以为。 此外,ADODB 对用过 ASP
的人来说,应该不面生,那类朋友对 ADODB 应该超轻巧选用。
Adodb官方:
PHP能够用最少的肥力以至最多的意趣来建立动态的网址,要成立动态网址我们须要利用数据库来撷取登陆账号音信、公布动态新闻、积累研商区的小说。
就以使用最通用的 MySQL
数据来讲,你们集团现已做到了这般美妙的专业,让你们的网址比你们所能想象的还要著名。接着你们也意识MySQL不可能应付实际的专门的学问量了,是该更换数据库
系统的时候了。
不幸地,在PHP中享有数据库的存取皆有个别一线的比不上。与MySQL连结你要使用
mysql_connect(State of Qatar,当您说了算晋级到 Oracle 或 Microsoft SQL Server
时,你一定要各自改用
ocilogon。更不佳的是例外连结所选择的参数也都差异,有的数据库说
po-tato,其他数据库又说 pota-to,喔…..天啊。 我们不用摈弃当你要求保险您程序的可移植性的时候,一个叫作 ADODB
的数据库封包链接库已经冒出了。它提供了共通的应用程序接口来跟全体扶植的数据库调换,因而你不用放弃!
ADODB是Active Data Object
DataBase的缩写。ADODB近年来支撑MySQL、PostgreSQL、Oracle、
Interbase、Microsoft SQL
Server、Access、FoxPro、Sybase、ODBC及ADO,你能够从
ADODB。 MySQL的事例
PHP中最通用的数据库是MySQL,所以本人想你会赏识上边包车型客车程序代码,它连着到
localhost 的 MySQL 服务器,数据库名称是 mydab,况且施行七个 SQL 的
select 指令查询,查询结果会一排排地印出来。 $db =
mysql_connect(“localhost”, “root”, “password”); mysql_select_db;
$result = mysql_query(“SELECT *澳门新葡萄京官网首页, FROM employees”,$db); if die; while
($fields = mysql_fetch_row { for ($i=0, $max=sizeof; $i < $max;
$i++) { print $fields[$i].’ ‘; } print “
n”; }
上列的程序代码用颜色标明分段,第一段是对接的有的,第二段是施行SQL指令,最后一段则是浮现字段,while循环扫描结果的每一列,而for循环扫描到每列的字段。
接下来是以ADODB的程序代码获得平等的结果: include; $db =
NewADOConnection; $db->Connect(“localhost”, “root”, “password”,
“mydb”卡塔尔(قطر‎; $result = $db->Execute(“SELECT * FROM employees”); if die;
while { for ($i=0, $max=$result->FieldCount print
$result->fields[$i].’ ‘; $result->MoveNext(); print “
n”; } 未来改成指向Oracle数据库,程序代码只要修改第二行成为
NewADOConnection,让大家看一下完整的次序代码… 与数据库联网 include;
$db = NewADOConnection; $db->Connect(“localhost”, “root”, “password”,
“mydb”卡塔尔;
连结的程序代码比起原本MySQL的程序代码有饱经见多识广一些,因为我们便是供给更成熟些。在ADODB我们应用对象导向的点子来管理各个数据库的复杂
性,我们用区别类来支配差别数据库。倘使你不熟悉对象导向程序设计,别忧虑!全体的复杂性工作都掩藏在
NewADOConnection(State of Qatar 函数之后。
为了节约内部存款和储蓄器,大家只加载与您所联网数据库相关的PHP程序代码,大家经过调用NewADOConnection
来达成那事,合法的数据库驱动程序包括mysql,mssql,oracle,oci8,postgres,sybase,vfp,access,ibase
以致许多其余的驱动程序。 接着大家经过调用 NewADOConnection(卡塔尔国来从连结连串发生贰个新的靶子实体,最终我们采纳 $db->Connect(卡塔尔(قطر‎来连接数据库。 实践SQL指令 $result = $db->Execute(“SELECT * FROM
employees”卡塔尔; if die;
直接传送SQL指令到服务器,当成功试行之后,Execute(卡塔尔将盛传叁个recordset对象,你能够犹如下面所列来检查$result。
二个初行家轻便模糊的议题是,在ADODB有两体系型的靶子,连结对象以致recordset对象,大家何时用那么些指标啊?
连结对象是担负连结数据库,格式化你的SQL查询。而recordset对象则是担当撷取结果并将响应数据规格化成文字或数组。
独一作者索要追加的业务是,ADODB提供繁多实用的函数来让INSERT及UPDATE指令更易于些,这一点我们在进级的章节会提到。
撷取资料 while { for ($i=0, $max=$result->FieldCount print
$result->田野s[$i].’ ‘; $result->MoveNext(); print “
n”; }
前边获得数据的楷模很像从档案读数据,在每一行大家先是检查是不是到了档案的最终,若尚未到结尾,循环扫过每列中的字段,然后移到下一行接珍视复同一的政工。
$result->田野先生s[]数组是由PHP数据库延伸系统所发生的,有个别数据库延伸系统并不会以字段名称营造该数组的目录,要强迫以名称排序索引该数组,使用$ADODB_FETCH_MODE的通用变量。
$ADODB_FETCH_MODE = ADODB_FETCH_NUM; $rs1 = $db->Execute(‘select
* from table’); $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC; $rs2 =
$db->Execute(‘select * from table’); print_r; // shows array
print_r; // shows array([‘col1′]=>’v0’,[‘col2’] =>’v1’卡塔尔如同你所见的地点例子,七个recordset积攒并应用区别的取用格局,当recordset由Execute(卡塔尔(قطر‎产生后再设定$ADODB_FETCH_MODE。
ADOConnection
连结到数据库的靶子,试行SQL指令况且有一组工具函数来规范格式化SQL指令,举例涉及与日期格式等一声令下。
此外有效的函数
$recordset->Move卷动近年来的数据列,ADODB协理全数数据库往前卷动,有一对数据库并不协理将来的卷动,那倒不会是个难题,因为您能够用暂存纪录到快取来仿真未来卷动。
$recordset->RecordCount(卡塔尔(قطر‎传回SQL指令存取到的记录笔数,有个别数据库会因为不援助而盛传-1。
$recordset->GetArray(卡塔尔国以数组的措施传回结果。
rs2html函数将传进的recordset转为HTML的表格格式。下例中以粗体字展现相关用法:
include; include; /* includes the rs2html function */ $conn =
&ADONewConnection;
$conn->PConnect(‘localhost’,’userid’,’password’,’database’); $rs =
$conn->Execute(‘select * from table’); rs2html; /* recordset to
html table */ 还会有许多任何有效的函数列示在文件之中,可从下列网站查得
升级主题材料 新添及创新倘让你要新扩大下列数据到数据库中。 ID = 3 TheDate=mktime /* 31st August
2001 */ Note= sugar why don’t we call it off
当你改用其他数据库,恐怕就不能够新添多少。
第四个难点是,每四个数据库各自有两样的钦赐日期格式,MySQL使用 YYYY-MM-DD
格式,而任何数据库则有不相同的钦点格式,ADODB提供DBDate(卡塔尔(قطر‎函数来改换不相同数据库之间的日子钦定格式。
次叁个主题素材是单引号的表示法,在MySQL能够一向利用单引号,但在其余数据库如Sybase、Access、
Microsoft SQL Server,则用多个单引号表示函数能够化解此难点。
我们什么行使这几个函数?就如那样: $sql = “INSERT INTO table values (” .
$ID . ‘,’ . $db->DBDate .’,’ . $db->qstr”; $db->Execute;
ADODB还恐怕有$connection->Affected_Rows(State of Qatar函数,传回受最终update或delete指令影响的数据列数,
及$recordset->Insert_ID(卡塔尔(قطر‎函数,传回最终因insert指令而自动发出的数据列编号,预先提示大家,未有其他数据库有提供
那多个函数。 MetaTypes
你能够获得有关字段的越来越多消息,透过recordset的法子FetchField传回对象的3本特性:name,type,max_length。
比如表明: $recordset = $conn->Execute(“select adate from table”卡塔尔(قطر‎;
$f0 = $recordset->Fetch菲尔德;
结果$f0->name的始末是’adata’,$f0->type将是’date’,固然max_length不明了,其剧情将会是-1。
管理区别数据库的三个标题是,每二个数据库对于同一的数额型态会有差别的称之为,例如timestamp型态在某数据库中称之为datetime,而另
三个数据库则称为time,所以ADODB提供MetaType函数来标准下列的数量型态:
C: character and varchar types X: text or long character (eg. more than
255 bytes wideState of Qatar. B: blob or binary image D: date T: timestamp L: logical
I: integer N: numeric 在前头的事例中, $recordset =
$conn->Execute(“select adate from table”卡塔尔(قطر‎; $f0 =
$recordset->FetchField; $type = $recordset->MetaType($f0->type,
$f0->max_length); print $type; /* should print ‘D’ */
Select指令的Limit及Top协助ADODB有个$connection->SelectLimit函数让您撷取
recordset的部分会集,那是行使Microsoft成品中的SELECT
TOP用法,及PostgreSQL与MySQL中的SELECT…LIMIT用法的长处,即使原本的数据库并不曾提供此用法,本函数也仿真提供该使
用形式。 快取支援
ADODB允许你在您的档案系统中暂存recordset的多少,况且在$connection->CacheExecute及
$connection->CacheSelectLimit($secs2cache,$sql,$nrows,$offset卡塔尔(قطر‎等设定的岁月间距达到未来,才真的去做数据库的询问以节省时间。 PHP4 Session帮忙ADODB也支持PHP4 session
handler,你能够存放你的session变量在数据库中,相关功效请参照他事他说加以考察
激励商业使用
假诺你安排写商用的PHP应用软件来发卖,你也得以使用ADODB,大家根据GPL来出版ADODB,也正是说你可以合法地在商用应用程式中引用,并持有你程序代码的全体权。猛烈地勉励ADODB的购买出卖利用,大家同生共死之中也正以那么些理由这么使用中。

发表评论

电子邮件地址不会被公开。 必填项已用*标注