本文转载自:http://blog.csdn.net/like_zhz/article/details/5441946

##########################################################################
可移植的DBI方法:
connect    建立到一个数据库服务器的连接
disconnect   断开数据库服务器的连接
prepare    准备执行一个SQL语句
execute    执行准备好的语句
do    准备并执行一个SQL语句
quote    加引号于要插入的字符串或BLOB值
fetchrow_array   作为一个字段数组取出下一行
fetchrow_arrayref  作为一个字段的引用数组取出下一行
fetchrow_hashref  作为一个哈希表的引用取出下一行
fetchall_arrayref  作为一个字段数组取出所有数据
finish    完成一条语句并且让系统释放资源
rows    返回受影响的行数
data_sources   返回可在localhost上得到的数据库的数组
ChopBlanks   控制fetchrow_*方法是否剥去空格
NUM_OF_PARAMS   在准备的语句中的占位(placeholder-参数)的数目
NULLABLE   其列可以是NULL
trace    执行调试跟踪
##########################################################################
$dbh 数据库句柄
$sth 语句句柄
$rc 返回代码(经常是一个状态)
$rv 返回值(经常是一个行数)
##########################################################################
①connect($data_source, $username, $password) 
使用connect方法使得一个数据库连接到数据源。$data_source值应该以DBI:driver_name:开始。以DBD::mysql驱动程序使用connect的例子:
  $dbh = DBI->connect("DBI:mysql:$database", $user, $password);
  $dbh = DBI->connect("DBI:mysql:$database:$hostname",
                      $user, $password);
  $dbh = DBI->connect("DBI:mysql:$database:$hostname:$port",
                      $user, $password);

②disconnect 
disconnect方法从数据库断开数据库句柄。它一般就在你从程序退出之前被调用。范例:
  $rc = $dbh->disconnect;
    prepare($statement) 
准备一条由数据库引擎执行的SQL语句并且返回语句句柄($sth),你可以使用它调用execute方法。一般地你借助于prepare和execute来处理SELECT语句(和类SELECT语句,例如SHOW、DESCRIBE和EXPLAIN)。范例:
  $sth = $dbh->prepare($statement)
      or die "Can't prepare $statement: $dbh->errstr/n";
③execute 
execute方法执行一个准备好的语句。对非SELECT语句,execute返回受影响的行数。如果没有行受影响,execute返回"0E0",Perl将它视作零而不是真。对于SELECT语句,execute只是在数据库中启动SQL查询;你需要使用在下面描述的fetch_*方法之一检索数据。范例:
  $rv = $sth->execute
            or die "can't execute the query: $sth->errstr;
④do($statement) 
do方法准备并且执行一条SQL语句并且返回受影响的行数。如果没有行受到影响,do返回"0E0",Perl将它视为零而不是真。这个方法通常用于事先无法准备好(由于驱动程序的限制)或不需要执行多次(插入、删除等等)的非SELECT语句。范例:
  $rv = $dbh->do($statement)
          or die "Can't execute $statement: $dbh- >errstr/n";
⑤quote($string) 
quote方法被用来“转义”包含在string中的任何特殊字符并增加所需的外部的引号。范例:
  $sql = $dbh->quote($string)
⑥fetchrow_array 
这个方法取下一行数据并且作为一个字段值数组返回它。范例:
  while(@row = $sth->fetchrow_array) {
          print qw($row[0]/t$row[1]/t$row[2]/n);
  }
⑦fetchrow_arrayref 
这个方法取下一行数据并且作为一个对一个字段值数组的引用返回它。范例:
  while($row_ref = $sth->fetchrow_arrayref) {
          print qw($row_ref->[0]/t$row_ref->[1]/t$row_ref->[2]/n);
  }
⑧fetchrow_hashref 
这个方法取一行数据并且返回包含字段名/值对的一个哈希表的一个引用。这个方法不如使用上述数组引用那样有效。范例:
  while($hash_ref = $sth->fetchrow_hashref) {
          print qw($hash_ref->{firstname}/t$hash_ref->{lastname}/t/
                  $hash_ref- > title}/n);
  }
⑨fetchall_arrayref 
这个方法被用来获得从SQL语句被返回的所有数据(行)。它返回一个数组的引用,该数组包含对每行的数组的引用。你用一个嵌套循环来存取或打印数据。范例:
  my $table = $sth->fetchall_arrayref
                  or die "$sth->errstr/n";
  my($i, $j);
  for $i ( 0 .. $#{$table} ) {
          for $j ( 0 .. $#{$table->[$i]} ) {
                  print "$table->[$i][$j]/t";
          }
          print "/n";
  }
⑩finish 
便名没有更多的数据将从这个语句句柄取出。你调用这个方法释放语句句柄和任何与它相关的系统资源。范例: 
  $rc = $sth->finish;
⑪rows 
返回由最后一条命令改变(更新、删除等)的行数。这通常用在非SELECT的execute语句之后。范例:
  $rv = $sth->rows; 
⑫NULLABLE 
返回一个对一个布尔值数组的引用;对数组的每个成员,一个TRUE值表示该列可以包含NULL值。范例:
  $null_possible = $sth->{NULLABLE};
⑬NUM_OF_FIELDS 
这个属性表明由一条SELECT或SHOW FIELDS语句返回的字段数目。你可以用它检查一条语句是否返回了结果:一个零值表明一个象INSERT、DELETE或UPDATE的非SELECT语句。范例:
  $nr_of_fields = $sth->{NUM_OF_FIELDS};
⑭data_sources($driver_name) 
这个方法返回一个数组,它包含在主机'localhost'上的MySQL服务器可得到的数据库名。范例:
  @dbs = DBI->data_sources("mysql");
⑮ChopBlanks 
这个属性确定fetchrow_*方法是否将去掉返回值的头和尾的空白。范例:
  $sth->{'ChopBlanks'} =1;
trace($trace_level) 
  
⑯trace($trace_level, $trace_filename) 
trace方法开启或关闭跟踪。当作为一个DBI类方法调用时,它影响对所有句柄的跟踪。当作为一个数据库或语句句柄方法调用时,它影响对给定句柄的跟踪(和句柄的未来子孙)。设置$trace_level为2以提供详细的踪迹信息,设置$trace_level为0以关闭跟踪。踪迹输出缺省地输出到标准错误输出。如果指定$trace_filename,文件以添加模式打开并且所有跟踪的句柄的手被写入该文件。范例:
  DBI->trace(2);                # trace everything
  DBI->trace(2,"/tmp/dbi.out"); # trace everything to /tmp/dbi.out
  $dth->trace(2);               # trace this database handle
  $sth->trace(2);               # trace this statement handle
你也可以通过设置DBI_TRACE环境变量开启DBI跟踪。将它设置为等价于调用DBI->(value)的数字值,将它设置为等价于调用DBI->(2,value)的路径名。

Perl数据库DBI接口简介【转载】的更多相关文章

  1. Windows数据库编程接口简介

    数据库是计算机中一种专门管理数据资源的系统,目前几乎所有软件都需要与数据库打交道(包括操作系统,比如Windows上的注册表其实也是一种数据库),有些软件更是以数据库为核心因此掌握数据库系统的使用方法 ...

  2. Linux中的IO复用接口简介(文件监视?)

    I/O复用是Linux中的I/O模型之一.所谓I/O复用,指的是进程预先告诉内核,使得内核一旦发现进程指定的一个或多个I/O条件就绪,就通知进程进行处理,从而不会在单个I/O上导致阻塞. 在Linux ...

  3. SQLite3 C/C++ 开发接口简介

    SQLite3 C/C++ 开发接口简介 1.0 总览 SQLite3是SQLite一个全新的版本,它虽然是在SQLite 2.8.13的代码基础之上开发的,但是使用了和之前的版本不兼容的数据库格式和 ...

  4. Monte Carlo方法简介(转载)

    Monte Carlo方法简介(转载)       今天向大家介绍一下我现在主要做的这个东东. Monte Carlo方法又称为随机抽样技巧或统计实验方法,属于计算数学的一个分支,它是在上世纪四十年代 ...

  5. DBI接口和DPI接口的区别

    1)DBI接口 A,也就是通常所讲的MCU借口,俗称80 system接口.The lcd interface between host processor and LCM device list a ...

  6. java多线程Lock接口简介使用与synchronized对比 多线程下篇(三)

    前面的介绍中,对于显式锁的概念进行了简单介绍 显式锁的概念,是基于JDK层面的实现,是接口,通过这个接口可以实现同步访问 而不同于synchronized关键字,他是Java的内置特性,是基于JVM的 ...

  7. C语言定义的操作mysql数据库的接口

    编写的环境:centos7系统下,对mysql的衍生mariadb进行数据库的操作,包含设置访问数据库的参数,查询数据库和增删改数据库的三个功能.对于查询数据库,我这里允许不返回查询结果,用于判断查询 ...

  8. SoapUI SoapUI测试WebService协议接口简介

    SoapUI测试WebService协议接口简介 by:授客 QQ:1033553122 1. 创建项目,入口:File -> New SOAP Project,或者右键默认项目Project- ...

  9. soapUI 使用soapUI测试http+json协议接口简介

    使用soapUI测试http+json协议接口简介 by:授客 QQ:1033553122 SoapUI-Pro-x64-5.1.2_576025(含破解文件),软件下载地址: http://pan. ...

随机推荐

  1. display:box和flex的区别

    没区别,仅是各阶段草案命名flex是最新的 但是在实际的浏览器测试中,display: flex 不能完全替代display: -webkit-box display: box 使用可以参考http: ...

  2. Linux Stu

    指定命令别名 alias ..='cd ..' 命令连接符 持续的执行命令,不管错误 [命令1]; [命令2]; [命令3];   前一个正确才执行下一个 [命令1] && [命令2] ...

  3. Linq101-Aggregate

    using System; using System.Collections.Generic; using System.Linq; namespace Linq101 { class Aggrega ...

  4. VB 中ListView 某一列的颜色添加不上去的解决方法

    做过VB,对添加某一行中的某一列的背景颜色 ,和文字颜色,来表明某种意义的时候,会有添加不上去的情况 abc = Nothing abc = New ListViewItem.ListViewSubI ...

  5. java编程思想-枚举类型思维导图

  6. C#操作word封装

    在项目中添加Microsoft.Office.Interop.Word.dll引用 Codepublic  class  WordAPI{    private object _template;   ...

  7. sql server identity限制

    identity属性是依赖于表的,它不是一种独立的序列机制,不能随意使用它生成新值. 标识值是在insert语句执行时生成的,不是在执行之前生成的. identity属性是以异步的方式分配标识值.这意 ...

  8. Ajax数据格式,html,xml,json

    1. 2. 3. 4. 5. 6. 7. 8. 9.

  9. iOS开发UI篇——简单的浏览器查看程序

    一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件的对象,需要添加监听方法 左边按钮 右边 ...

  10. CocoaPods使用详细说明(转)

    一.概要 iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库. 二.安装 由于 ...