热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

高级材料Insert和Update假设现在你要把下面的数据插入到数据库中.ID3TheDatemktime(0,0,0,8,31,2001)*31stAugust2001*Notesugarwhydontwecallitoff当你使用另外一个数据库的时候,你的插入操作可能不会成功。第一个问题是每个数据库都有
  高级材料
  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 的
  
  
推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
    本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了如何在MySQL中将零值替换为先前的非零值的方法,包括使用内联查询和更新查询。同时还提供了选择正确值的方法。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
author-avatar
nnbji
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有