热门关键字:  ubuntu  分区  函数  Fedora  linux系统进程

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

来源: 作者: 时间:2008-06-02 Tag: 点击:
高级材料
  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。
  
  处理不同类型的数据库的一个问题是每个数据库常常用不同的名字来调用相同的类型。
最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册