电脑软硬件应用网
当前位置: 电脑软硬件应用网 > 设计学院 > 网络编程 > 数据库 > 正文
关于从MySQL转向ADODB的方法
关于从MySQL转向ADODB的方法
2010-3-21 10:13:20  文/佚名   出处:PHPchina   

  高级材料


  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, MicrosoftSQL 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 字节宽度).

  • 上一篇文章:

  • 下一篇文章:
  • 最新热点 最新推荐 相关文章
    详解如何查找SQL数据库自增ID值不连…
    SQL重建索引重新释放掉字段因更改而…
    SQL教程:SQL Server备份和灾难恢复
    SQL注入攻击:防御和检查SQL注入的手…
    SQL Server日志文件丢失 进行恢复方…
    解决安装SQL Server出现command lin…
    Windows 7下如何安装SQL Server 200…
    详解SQL数据仓库之时间维度创建的开…
    解答SQL不许在视图定义ORDER BY子句…
    解答SQL不许在视图定义ORDER BY子句…
    关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 |

    Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号