转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 站长学院 >> Web开发 >> 正文
指南:从MySQL转向ADODB(2)         ★★★★

指南:从MySQL转向ADODB(2)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2046 更新时间:2009/4/23 10:49:28

高级材料

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作为商业用途!因为上述的原因我们内部也正

[1] [2]  下一页


[Web开发]使用XMLHttp和ADODB.Stream取得远程文件并保存到本…  [Web开发]ASP中利用ADODB.Stream对象将字节流转换为字符流
[Web开发]指南:从MySQL转向ADODB(1)  [Web开发]面向对象的asp编程之五--adodb的类封装
[Web开发]PHP技巧--通过COM使用ADODB  [Web开发]adodb Stream 详细用法
[Web开发]MMCACHE+PHP5+ADODB出现内存溢出的问题  [Web开发]smarty+adodb+部分自定义类的php开发模式
[Web开发]利用VBScript及ADODB.Steam获取部分格式图象长宽  [Web开发]adodb Stream 详细用法     选择自 3cts 的 Blog
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Web开发  · 网页制作
    · 平面设计  · 网站运营
    · 网站推广  · 搜索优化
    · 建站心得  · 站长故事
    · 互联动态
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台