分享
 
 
 

指南从MySQL转向ADODB的方法(1)

王朝mysql·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

高级材料

Insert 和 Update

假设现在你要把下面的数据插入到数据库中.

ID = 3

TheDate=mktime(0,0,0,8,31,2001) /* 31st August 2001 */

Note= sugar why don't we call it off

当你使用另外一个数据库的时候,你的插入操作可能不会成功。

第一个问题是每个数据库都有不同的默认日期格式。MySQL默认格式是YYYY-MM-DD ,

然而其它数据库有不同的默认格式。ADODB有一个DBDate()的函数,它能将日期转

换成正确的格式。

接下来的一个问题是Note字段值里的don't 应该作为引文。在MySQL中,使用

don\'t 来解决这个问题,但在一些其它的数据库中(Sybase, Access, Microsoft

SQL Server)使用don''t 。qstr()解决了这个问题。

那么我们怎么使用这个函数呢? 像下面这样:

$sql = "INSERT INTO table (id, thedate,note) values ("

. $ID . ','

. $db-DBDate($TheDate) .','

. $db-qstr($Note).")";$db-Execute($sql);ADODB 也支持 $connection-Affected_Rows() (返回上次update或delete操作影响的

行数) 和 $recordset-Insert_ID() (返回insert声明生成的上一个自增编号)。但要

说明的是不是所有的数据库都支持这两个函数。

MetaTypes

你可以找到更多关于你调用recordset的方法FetchField($fieldoffset)所选择的每个

字段(我同时使用字段和列这两个词)的信息。它将返回一个有三个属性(名称,类

型和最大长度)的对象。

例如:$recordset = $conn-Execute("select adate from table");

$f0 = $recordset-FetchField(0);那么 $f0-name 的值将被设为 'adata', $f0-type 的值将被设为 'date'. 如果

max_length 未知,它被设为-1。

处理不同类型的数据库的一个问题是每个数据库常常用不同的名字来调用相同的类型。

例如timestamp 类型在某一个数据库中叫做datetime 类型,而在另一个是叫做time

类型。 因此 ADODB 有个专门的 MetaType($type, $max_length) 函数对下面的类型

进行标准化:

C: character 和 varchar 类型

X: text 或者 long character (例如.多于255 字节宽度).

B: blob 或者 binary 图像

D: date

T: timestamp

L: logical (boolean)

I: integer

N: numeric (float, double, money)

在上面的例子中,

$recordset = $conn-Execute("select adate from table");

$f0 = $recordset-FetchField(0);

$type = $recordset-MetaType($f0-type, $f0-max_length);

print $type; /* 应该显示 'D' */

Select Limit 和 Top 支持

ADODB 有一个叫$connection-SelectLimit($sql,$nrows,$offset)的函数,它允许你

获得一个记录集(recordset)的子集。它会在Microsoft产品上使用本地的SELECT TOP,

在PostgreSQL和MySQL上使用SELECT ... LIMIT,并在不支持这项功能的数据库上模拟

这个功能。

缓存支持

ADODB 允许你在你的文件系统上缓存记录集结果,只需用$connection-CacheExecute($secs2cache,$sql)

和$connection-CacheSelectLimit($secs2cache,$sql,$nrows,$offset)在指定的超时

时间段后重新向数据库服务器发出查询。

PHP4 Session 处理接口支持

ADODB 也支持PHP4 session 处理接口. 你可以使用ADODB在一个数据库中存储你的

session变量。要获得更多下信息,访问http://php.weblogs.com/adodb-sessions

鼓励作为商业用途

如果你正计划编写你要转售的商业PHP软件产品,你应该考虑ADODB。ADODB使用GPL发

布。这意味这你也可以在商业软件中合法的使用它,同时保持你的代码所有权。十分

鼓励ADODB作为商业用途!因为上述的原因我们内部也正在使用它。

结束语

作为你能耐心的看完这篇文章的答谢,下面是let's call the whole thing off 的

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有