perl连接access数据库自动测试脚本语言((共9篇))由网友“pb”投稿提供,下面是小编给大家带来perl连接access数据库自动测试脚本语言,一起来阅读吧,希望对您有所帮助。
篇1:perl连接access数据库自动测试脚本语言
前题是必须安装好activeperl (505以上),以及MS Access 97 一. 安装Win32-ODBC模块 步骤1: 从TOOLS栏目中下载Win32-ODBC.zip,下载完后用winzip解开到一个temp目录,共有三个文件: Readme Win32-ODBC.ppd Win32-ODBC.tar.gz 步骤2: 在DOS窗口下,temp目录
前题是必须安装好activeperl (505以上),以及MS Aclearcase/“ target=”_blank“ >ccess 97
一. 安装Win32-ODBC模块
步骤1:
从TOOLS栏目中下载Win32-ODBC.zip,下载完后用winzip解开到一个temp目录,共有三个文件:
Readme
Win32-ODBC.ppd
Win32-ODBC.tar.gz
步骤2:
在DOS窗口下,temp目录中运行下面的DOS命令:
ppm install Win32-ODBC.ppd
二. 准备测试用数据库(ACCESS)
步骤1:
启动MS ACCESS,建立一个新空数据库,命名为odbctest.mdb,保存在某一目录中(记住路径),
步骤2:
然后新建一个表,建立三个字段:
字段名称 数据类型
Name 字符,长度50
Email 字符,长度50
Age 数字,长整型
将这个表保存为address(注意这个例子中,没有用自动增加的ID).输入若干记录:
Nighthawk nighthawk@163.net 20 1234567
John jt@163.net 24 0284393293
kit kit@21cn.com 18 3948932
保存后,关闭数据库文件。
步骤3:
打开控制面板中的 ODBC数据源(32位),在用户DSN栏中,找到用户数据源列表,选中名称为“MS Access 97 Database”的一行,然后按“配置”键。
在Database框中按”Select..“,选择步骤1.2中建立的数据库文件odbctest.mdb,按OK即可。ODBC设置中的其它项目全部采用缺省设置,然后就是OK,确定,关闭对话窗口。
三. 这时候,数据库已经可以用了,我们来测试一下:
#!/usr/bin/perl
use Win32::ODBC;
$DSN = ”MS Access 97 Database“;
$DBase = ”access.mdb“;
#连接数据库
if (!($db = new Win32::ODBC($DSN))){
print ”连接数据库失败.n“;
exit;
}
else{
print ”连接数据库成功 (连接号:“, $db->Connection(), ”)nn“;
}
#数据库中的表
print ”数据库中的表:“;
@tables = $db->TableList;
print @tables;
print ”n“;
#选择数据表
if (! $db->Sql(”SELECT * FROM [address] WHERE age>=20“) ){
@FieldNames = $db->FieldNames();
$Cols = $#FieldNames + 1;
#表中字段数
print ”表address字段数:$Colsn“;
#字段列表
for ($i = 0; $i < $Cols; $i++){
print ”$FieldNames[$i]t“;
}
print ”n“;
#列出年龄大于20的记录
while($db->FetchRow()) {
@values = $db->Data();
print @values;
print ”n“;
}
}
##### sql #########
#添加记录
$sqlinsert = ”INSERT INTO address VALUES ('Euler', 'euler@21cn.com', 28, '021-345689')“;
#更新记录
$sqlupdate = ”UPDATE address SET age = age+10 “;
#删除记录
$sqldelete = ”DELETE FROM address WHERE name='jimtyan'“;
$rc = $db->Sql($sqlinsert);
die qq(SQL 失败 ”$sqlinsert“: ), $db->Error(), qq(n) if $rc;
$rc = $db->Sql($sqlupdate);
die qq(SQL 失败 ”$sqlupdate“: ), $db->Error(), qq(n) if $rc;
$rc = $db->Sql($sqldelete);
die qq(SQL 失败 ”$sqldelete“: ), $db->Error(), qq(n) if $rc;
#关闭链接
$db->Close();
进一步学习请访问Win32-ODBC模块作者主页:www.roth.net/perl/odbc/ Nighthawk 版权所有, 署名
原文转自:www.ltesting.net
篇2:关于PERL的数据库自动测试脚本语言
DBM简介: DBM是一种文件数据储存数据,由于采用哈希结构进行连接,因此具有一些数据库的特点功能与普通文本数据库相比,具有稳定,检索速度快和支持量大的优点,由于DBM是从 Unix 系统中移植来的,因此在Unix/ linux 系统中优点比较明显,而在NT系统中则不
DBM简介:
DBM是一种文件数据储存数据,由于采用哈希结构进行连接,因此具有一些数据库的特点功能与普通文本数据库相比,具有稳定,检索速度快和支持量大的优点,由于DBM是从Unix系统中移植来的,因此在Unix/linux系统中优点比较明显,而在NT系统中则不太理想,在NT中使用有时会另数据文件变得十分庞大,
DBM的使用:
数据库采用关联数组方式保存数据,并与关联数组结合使用。
打开文件:
dbmopen(%USERFILE,”dbfilename“,0666);
此时将把数据值赋给USERFILE关联数组。
关闭文件:
dbmclose(%USERFILE);
添加数据:
dbmopen(%USERFILE,”dbfilename“,0666);
$USERFILE{$no}=value;
dbmclose(%USERFILE);
$no是数组的关联值,必须唯一,否则该关联数据会被更新,
删除数据:
dbmopen(%USERFILE,”dbfilename“,0666);
delete $USERFILE{$no};
dbmclose(%USERFILE);
$no是要删除的关联值。
更新数据:
dbmopen(%USERFILE,”dbfilename“,0666);
$USERFILE{$no}=value;
dbmclose(%USERFILE);
历遍数组:
dbmopen(%USERFILE,”dbfilename“,0644);
%TEMP=%USERFILE;
dbmclose(%USERFILE);
foreach (keys(%TEMP)){
$value=$TEMP{$_};
}
原文转自:www.ltesting.net
篇3:Perl概述自动测试脚本语言
Perl 是 Practical Extraction and Report Language( 实用摘录和报告语言 ) 的简称,是由 Larry Wall 所发展的,其最新版本为 5.6 。 Perl 的设计目标是帮助 UNIX 用户完成一些常见的任务,这些任务对于 shell 来说过于沉重或对移植性要求过于严格。 Perl 是
Perl是Practical Extraction and Report Language(实用摘录和报告语言)的简称,是由Larry Wall所发展的。其最新版本为5.6。Perl的设计目标是帮助UNIX用户完成一些常见的任务,这些任务对于shell来说过于沉重或对移植性要求过于严格。
Perl是按GNU Public License的形式分发的,其实质是免费的,原先运行于UNIX和类UNIX系统,现在已可以方便地在OS/2,Windows9x,Windows/NT等系统下运行。
Perl是解释运行的,一般Perl程序的第一行需注明自己是一个Perl程序而不是shell程序,所以一般将下面一行语句:
#! /usr/bin/perl
作为文件的第一行。
第一个Perl程序
就拿各类书籍最常用显示”Hello! Welcome!“程序来说吧。下面是其源程序:
#! /usr/bin/perl
print ”你好!欢迎光临网络教室! n“;
这里的第一行说明了这是一个Perl程序,它也是Perl的注释,注释是从#开始至该行结束的所有文字。第二行是程序的可执行部分,这里只有一条print语句,如果你学过C语言,就能很快掌握它。
MILY: 宋体; mso-bidi-font-family: 宋体”>提问并保留结果
在此基础上做稍微复杂一点的改变,我们使该程序按你的名字打招呼。要做到这一点,需要一个变量来存放姓名。我们使用$name来保存姓名。
#!/usr/bin/perl
print “请问您的姓名?”;
$name=;
chop($name);
print “你好, $name,欢迎光临网上学园!n”;
这里第三行表示从终端获得行输入并赋值给$name,这里的$name的值有一个换行符,第四行chop($name)表示去掉$name的最后一个字符(即换行符),
第五行显示输入。
增加选择
现在让我们为园主zmd编写一个特殊的欢迎辞,而对其他人则采用普通欢迎辞。要达到这样的效果必须将输入的姓名与zmd作比较,如果相同则执行特殊功能。
#!/usr/bin/perl
print “请问您的姓名?”;
$name=;
chop($name);
if ($name eq “zmd”){
print “欢迎zmd进入本系统!n”;
} else {
print “你好, $name,欢迎光临网上学园!n”;
}
这里第五行用eq操作符对两个字符串进行比较,相同则执行下一句,否则执行else下的语句(是不是和C语言差不多?)。
猜测密码
现在已经可以对zmd发不同的欢迎辞,但如何加上密码来控制权限呢?比如说,可以让除zmd以外的人都必须输入密码直到正确为止:
#!/usr/bin/perl
$password=“wsxy”; #密码为wsxy
print “请问您的姓名?”;
$name=;
chop($name);
if ($name eq “zmd”){
print “欢迎zmd进入本系统!n”;
} else {
print “你好, $name!n请输入密码:”;
$guess=;
chop($guess);
while ($guess ne $password){
print “密码错误,请重新输入:”;
$guess=;
chop($guess);
}
}
这里先将密码保存在标量变量$password中,然后当不是zmd登录后,先显示欢迎语句,然后要求输入密码,通过ne操作符将输入结果和$password相比较,密码相同则退出,不同则一直循环下去。
原文转自:www.ltesting.net
篇4:Perl下应当如何连接Access数据库数据库教程
首先需要安装Win32-ODBC模块,具体的步骤如下:
1:从TOOLS栏目中下载Win32-ODBC.zip,下载完后用winzip解开到一个temp目录,共有三个文件:
Readme
Win32-ODBC.ppd
Win32-ODBC.tar.gz
2:在DOS窗口下,temp目录中运行下面的DOS命令:ppm install Win32-ODBC.ppd,
然后准备测试用数据库(Access)
1:启动MS ACCESS,建立一个新空数据库,命名为odbctest.mdb,保存在某一目录中(记住路径)。
2:然后新建一个表,建立三个字段:
字段名称 数据类型 长度
Name 字符, 长度50
Email 字符, 长度50
Age 数字、长整型
将这个表保存为address(注意这个例子中,没有用自动增加的ID。输入若干记录:
以下为引用的内容:
Nighthawk nighthawk@163.net 20 1234567
John jt@163.net 24 0284393293
kit kit@21cn.com 18 3948932
保存后,关闭数据库文件。
3:打开控制面板中的 ODBC数据源(32位),在用户DSN栏中,找到用户数据源列表,选中名称为“MS Access 97 Database”的一行,然后按“配置”键。
在Database框中按“Select..”,选择步骤1.2中建立的数据库文件odbctest.mdb,按OK即可。ODBC设置中的其它项目全部采用缺省设置,然后就是OK,确定,关闭对话窗口。
最后进行测试:
以下为引用的内容:
#!/usr/bin/perl
use Win32::ODBC;
$DSN = “MS Access 97 Database”;
$DBase = “access.mdb”;
#连接数据库
if (!($db = new Win32::ODBC($DSN))){
print “连接数据库失败.n”;
exit;
}
else{
print “连接数据库成功 (连接号:”, $db->Connection(), “)nn”;
}
#数据库中的表
print “数据库中的表:”;
@tables = $db->TableList;
print @tables;
print “n”;
#选择数据表
if (! $db->Sql(“SELECT * FROM [address] WHERE age>=20”) ){
@FieldNames = $db->FieldNames();
$Cols = $#FieldNames + 1;
#表中字段数
print “表address字段数:$Colsn”;
#字段列表
for ($i = 0; $i < $Cols; $i++){
print “$FieldNames[$i]t”;
}
print “n”;
#列出年龄大于20的记录
while($db->FetchRow()) {
@values = $db->Data();
print @values;
print “n”;
}
}
##### sql #########
#添加记录
$sqlinsert = “INSERT INTO address
VALUES ('Euler', 'euler@21cn.com', 28, '021-345689')”;
#更新记录
$sqlupdate = “UPDATE address SET age = age+10 ”;
#删除记录
$sqldelete = “DELETE FROM address WHERE name='jimtyan'”;
$rc = $db->Sql($sqlinsert);
die qq(SQL 失败 “$sqlinsert”: ), $db->Error(), qq(n) if $rc;
$rc = $db->Sql($sqlupdate);
die qq(SQL 失败 “$sqlupdate”: ), $db->Error(), qq(n) if $rc;
$rc = $db->Sql($sqldelete);
die qq(SQL 失败 “$sqldelete”: ), $db->Error(), qq(n) if $rc;
#关闭链接
$db->Close();
篇5:Perl 中的正则表达式自动测试脚本语言
1 正则表达式的三种形式 首先我们应该知道 Perl 程序中,正则表达式有三种存在形式,他们分别是: 匹配:m/regexp/ (还可以简写为 /regexp/ ,略去 m) 替换:s/pattern/replacement/ 转化:tr/pattern/replacemnt/ 这三种形式一般都和 =~ 或 !~ 搭配使用(
1 正则表达式的三种形式
首先我们应该知道 Perl 程序中,正则表达式有三种存在形式,他们分别是:
匹配:m/
替换:s/
/
转化:tr/
/
这三种形式一般都和 =~ 或 !~ 搭配使用(其中 “=~” 表示相匹配,在整条语句中读作 does,“!~” 表示不匹配,在整条语句中读作 doesn't),并在左侧有待处理的标量变量,如果没有该变量和 =~ !~ 操作符,则默认为处理 $_ 变量中的内容。举例如下:
$str = “I love Perl”;
$str =~ m/Perl/; # 表示如果在 $str 中发现 “Perl” 字符串,则返回 “1” 否则返回 “0”。
$str =~ s/Perl/BASH/; # 表示将变量 $str 中的 “Perl” 字符串替换为 “BASH”,如果发生此替换则返回 “1”,否则返回 “0”。
$str !~ tr/A-Z/a-z/; # 表示将变量 $str 中的所有大写字母转化为小写字母,如果转化发生了则返回 “0”,否则返回 “1”。
另外还有:
foreach (@array) { s/a/b/; } # 此处每次循环将从 @array 数组中取出一个元素存放在 $_ 变量中,并对 $_ 进行替换处理。
while (
Perl 的正则表达式中如果出现 () ,则发生匹配或替换后 () 内的模式被 Perl 解释器自动依次赋给系统 $1, $2 ...... 请看下面的例子:
$string = “I love perl”;
$string =~ s/(love)/<$1>/; # 此时 $1 = “love”,并且该替换的结果是将 $string 变为 “I
$string = “i love perl”;
$string =~ s/(i)(.*)(perl)/<$3>$2<$1>/; # 这里 $1 = “i”,$2 = “ love ”,$3 = “perl”,并且替换后 $string 变为 “
love ”
替换操作 s/
/
s/
/ 的模式全部替换为
s/
/
比如下面的例子:
$string = “i:love:perl”;
$string =~ s/:/*/; #此时 $string=“i*love:perl”;
$string = “i:love:perl”;
$string =~ s/:/*/g; #此时 $string=“i*love*perl”;
$string =~ tr/*/ /; #此时 $string=“i love perl”;
$string = “www22cgi44”;
$string =~ s/(d+)/$1*2/e; # (/d+)代表 $string 中的一个或多个数字字符,将这些数字字符执行 *2 的操作,因此最后 $string 变成了 “www44cgi88”。
下面给出一个完整的例子:
#!/usr/bin/perl
print“请输入一个字符串!n”;
$string =
chop($string); # 将$string最后一个换行的字符n删除掉
if($string =~ /perl/){
print(“输入的字符串中有 perl 这个字符串!n”;
}
如果输入的字符串含有 perl 这个字符串的话,就会显示后面的提示信息。
2 正则表达式中的常用模式
下面是正则表达式中的一些常用模式。
/pattern/结果.匹配除换行符以外的所有字符x?匹配 0 次或一次 x 字符串x*匹配 0 次或多次 x 字符串,但匹配可能的最少次数x+匹配 1 次或多次 x 字符串,但匹配可能的最少次数.*匹配 0 次或一次的任何字符.+匹配 1 次或多次的任何字符{m}匹配刚好是 m 个 的指定字符串{m,n}匹配在 m个 以上 n个 以下 的指定字符串{m,}匹配 m个 以上 的指定字符串[]匹配符合 [] 内的字符[^]匹配不符合 [] 内的字符[0-9]匹配所有数字字符[a-z]匹配所有小写字母字符[^0-9]匹配所有非数字字符[^a-z]匹配所有非小写字母字符^匹配字符开头的字符$匹配字符结尾的字符d匹配一个数字的字符,和 [0-9] 语法一样d+匹配多个数字字符串,和 [0-9]+ 语法一样D非数字,其他同 dD+非数字,其他同 d+w英文字母或数字的字符串,和 [a-zA-Z0-9] 语法一样w+和 [a-zA-Z0-9]+ 语法一样W非英文字母或数字的字符串,和 [^a-zA-Z0-9] 语法一样W+和 [^a-zA-Z0-9]+ 语法一样s空格,和 [ntrf] 语法一样s+和 [ntrf]+ 一样S非空格,和 [^ntrf] 语法一样S+和 [^ntrf]+ 语法一样b匹配以英文字母,数字为边界的字符串B匹配不以英文字母,数值为边界的字符串a|b|c匹配符合a字符 或是b字符 或是c字符 的字符串abc匹配含有 abc 的字符串(pattern)() 这个符号会记住所找寻到的字符串,是一个很实用的语法,第一个 () 内所找到的字符串变成 $1 这个变量或是 1 变量,第二个 () 内所找到的字符串变成 $2 这个变量或是 2 变量,以此类推下去。/pattern/ii 这个参数表示忽略英文大小写,也就是在匹配字符串的时候,不考虑英文的大小写问题。如果要在 pattern 模式中找寻一个特殊字符,如 “*”,则要在这个字符前加上 符号,这样才会让特殊字符失效下面给出一些例子:
范例说明/perl/找到含有 perl 的字符串/^perl/找到开头是 perl 的字符串/perl$/找到结尾是 perl 的字符串/c|g|i/找到含有 c 或 g 或 i 的字符串/cg{2,4}i/找到 c 后面跟着 2个到 4个 g ,再跟着 i 的字符串/cg{2,}i/找到 c 后面跟着 2个以上 g ,再跟着 i 的字符串/cg{2}i/找到 c 后面跟着 2个 g,再跟着 i 的字符串/cg*i/找到 c 后面跟着 0个或多个 g ,再跟着 i 的字符串,如同/cg{0,1}i//cg+i/找到 c 后面跟着一个以上 g,再跟着 i 的字符串,如同/cg{1,}i//cg?i/找到 c 后面跟着 0个或是 1个 g ,再跟着 i 的字符串,如同/cg{0,1}i//c.i/找到 c 后面跟着一个任意字符,再跟着 i 的字符串/c..i/找到 c 后面跟着二个任意字符,再跟着 i 的字符串/[cgi]/找到符合有这三个字符任意一个的字符串/[^cgi]/找到没有这三个字符中任意一个的字符串/d/找寻符合数字的字符,可以使用/d+/来表示一个或是多个数字组成的字符串/D/找寻符合不是数字的字符,可以使用/D+/来表示一个或是更多个非数字组成的字符串/*/找寻符合 * 这个字符,因为 * 在常规表达式中有它的特殊意思,所以要在这个特殊符号前加上 符号,这样才会让这个特殊字符失效/abc/i找寻符合 abc 的字符串而且不考虑这些字符串的大小写3 正则表达式的八大原则
如果在 Unix 中曾经使用过 sed、awk、grep 这些命令的话,相信对于 Perl 语言中的正则表达式(Regular Expression)不会感到陌生。Perl 语言由于有这个功能,所以对字符串的处理能力非常强。在Perl语言的程序中,经常可以看到正则表达式的运用,在 CGI 程序设计中也不例外。
正则表达式是初学 Perl 的难点所在,不过只要一旦掌握其语法,你就可以拥有几乎无限的模式匹配能力,而且 Perl 编程的大部分工作都是掌握常规表达式。下面给大家介绍几条正则表达式使用过程中的 8 大原则。
正则表达式在对付数据的战斗中可形成庞大的联盟――这常常是一场战争。我们要记住下面八条原则:
・ 原则1:正则表达式有三种不同形式(匹配(m/ /),替换(s/ / /eg)和转换(tr/ / /))。
・ 原则2:正则表达式仅对标量进行匹配( $scalar =~ m/a/; 可以工作; @array =~ m/a/ 将把@array作为标量对待,因此可能不会成功)。
・ 原则3:正则表达式匹配一个给定模式的最早的可能匹配。缺省时,仅匹配或替换正则表达式一次( $a = 'string string2'; $a =~ s/string/ /; 导致 $a = 'string 2')。
・ 原则4:正则表达式能够处理双引号所能处理的任意和全部字符( $a =~ m/$varb/ 在匹配前把varb扩展为变量;如果 $varb = 'a' $a = 'as',$a =~ s/$varb/ /; 等价于 $a =~ s/a/ /; ,执行结果使 $a = “ s” )。
・ 原则5:正则表达式在求值过程中产生两种情况:结果状态和反向引用: $a=~ m/pattern/ 表示 $a 中是否有子串 pattern 出现,$a =~ s/(word1)(word2)/$2$1/ 则“调换”这两个单词。
・ 原则6:正则表达式的核心能力在于通配符和多重匹配运算符以及它们如何操作。$a =~ m/w+/ 匹配一个或多个单词字符;$a =~ m/d/“ 匹配零个或多个数字。
・ 原则7:如果欲匹配不止一个字符集合,Perl使用 ”|“ 来增加灵活性。如果输入 m/(cat|dog)/ 则相当于“匹配字符串 cat 或者 dog。
・ 原则8:Perl用 (?..) 语法给正则表达式提供扩展功能。(这一点请同学们课后看相关资料)
想要学习所有这些原则?我建议大家先从简单的开始,并且不断的尝试和实验。实际上如果学会了 $a =~ m/ERROR/ 是在 $a 中查找子串ERROR,那么你就已经比在 C 这样的低层语言中得到了更大的处理能力。
原文转自:www.ltesting.net
篇6:perl 域名查询程序自动测试脚本语言
# perl 国内域名查询程序
# flybird@chinaasp.com
# -9-22
# perl 写socket程序确实很简单,
use IO::Socket::INET;
$fqdn=”ourstory.com.cn“;
$server = 'whois.cnnic.net.cn';
$sock = IO::Socket::INET->new(”$server:43“) || die ”fail“;
print $sock ”$fqdnn“;
@ret=<$sock>;
print ”@ret“;
原文转自:www.ltesting.net
篇7:Perl连接Oracle数据库
上次讲了在linux下安装Oracle,安装完之后可以用netac来配置远程数据库的本地命名,
要在perl下面连接oracle数据库,首先必须安装DBI和DBD for Oracle。
下面是一段perl程序
#!/usr/bin/perl
use DBI;
$dbname=”oralce“;
$user=”user“;
$passwd=”password“;
$dbh=”“;
$dbh = DBI->connect(”dbi:Oracle:$dbname“,$user,$passwd) or die ”can't connect to
database “. DBI-errstr;
//连接数据库
$sth=$dbh->prepare(”select * from tDevice“);
$sth->execute;
//执行sql语句
while (@recs=$sth->fetchrow_array) {
print $recs[0].”:“.$recs[1].”:“.$recs[2].”n“;
//读取记录数据
}
$dbh->disconnect;
//断开连接
篇8:PERL与MySQL(DBI接口)自动测试脚本语言
通用DBI方法 TABLE border=1 cellSpacing=1 width=624 TBODY TR TD vAlign=center P align=justifySPAN class=text1connect /SPAN/P/TD TD vAlign=center P align=justifySPAN class=text1建立与一个数据库 服务器 的连接/SPAN/P/TD/TR TR TD vAlign=center
通用DBI方法
connect
建立与一个数据库服务器的连接
prepare
获取准备执行的SQL语句
do
准备并执行一个SQL语句
disconnect
断开与一个数据库服务器的连接
quote
入引用字符串(块)
execute
执行存储过程
fetchrow_array
取出下一行到一个数组之中
fetchrow_arrayref
取出下一行到数组中,返回数组的引用
fetchrow_hashref
取出下一行到哈希表,返回其引用
fetchall_arrayref
取出所有的数据到一个数组,返回其引用,
finish
结束语句、释放系统资源
rows
返回作用的行的数目
data_sources
返回本机中可用的数据库的数组。
ChopBlanks
去除空格
NUM_OF_PARAMS
存储过程中占位符的数目
NULLABLE
class=text1>哪一个行允许Null。
MySQL 的特殊方法
insertid
最后自动递增的值
is_blob
为BLOB的行
is_key
为键的行
is_num
为数字的行
is_pri_key
为主键的行
is_not_null
不能为NULL的行
length
理论上最大的列的数目
max_length
物理上最大的列的数目
NAME
列名
NUM_OF_FIELDS
返回的字段的数目
table
返回的集中的表的名称
type
行的类型
_CreateDB
创建一个数据库
_DropDB
删除一个数据库
connect
建立与一个数据库服务器的连接
prepare
获取准备执行的SQL语句
do
准备并执行一个SQL语句
disconnect
断开与一个数据库服务器的连接
quote
入引用字符串(块)
execute
执行存储过程
fetchrow_array
取出下一行到一个数组之中
fetchrow_arrayref
取出下一行到数组中,返回数组的引用
fetchrow_hashref
取出下一行到哈希表,返回其引用
fetchall_arrayref
取出所有的数据到一个数组,返回其引用,
finish
结束语句、释放系统资源
rows
返回作用的行的数目
data_sources
返回本机中可用的数据库的数组。
ChopBlanks
去除空格
NUM_OF_PARAMS
存储过程中占位符的数目
NULLABLE
哪一个行允许Null。
MySQL 的特殊方法
insertid
最后自动递增的值
is_blob
为BLOB的行
is_key
为键的行
is_num
为数字的行
is_pri_key
为主键的行
is_not_null
不能为NULL的行
length
理论上最大的列的数目
max_length
物理上最大的列的数目
NAME
列名
NUM_OF_FIELDS
返回的字段的数目
table
返回的集中的表的名称
type
行的类型
_CreateDB
创建一个数据库
_DropDB
删除一个数据库
connect:
使用connect方法建立一个到数据源的连接。$data_source应该以DBI:driver_name:开始,例如:
$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);
如果用户名或者是口令没有定义的话,那么DBI将使用DBI_USER,DBI_PASS环境变量分别作为其值。如果你没有定义主机的话,那么默认的是“localhost”,如果你没有定义端口号的话,以默认的mysql的端口号(3306)作为端口号。
prepare:
通过数据库引擎预备SQL语句并且返回一个语句句柄($sth)用于参与execute方法,例如:
$sth = $dbh->prepare($statement) or die ”Can't prepare $statement:
$dbh->errstrn“;
do
do方法预备并执行一个SQL语句,返回作用的行的数目,这个方法通常用于非select的语句,同时一般不需要执行多次(例如:insert,delete等)。例如:
$rc = $dbh->do($statement) or
die ”Can't execute $statement: $dbh- >errstrn“;
disconnect
disconnect将断开与数据库的连接,通常在程序结束的时候使用。例如:
$rc = $dbh->disconnect;
quote
quote方法用于 ”escape“任何在字符串中的特定自负,并且加上引用标记。
$sql = $dbh->quote($string)
execute
该方法执行一个存储的语句。对于非select的语句来说,它返回作用的行的数目,对于select语句来说,该方法仅仅是开始了在数据库中查询,你需要fetch_*方法来取回数据。
$rv = $sth->execute or die ”can't execute the query: $sth->errstr;
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->errstrn”;
my($i, $j);
for $i ( 0 .. $#{$table} ) {
for $j ( 0 .. $#{$table->[$i]} ) {
print “$table->[$i][$j]t”;
}
print “n”;
}
finish
指示没有更多的数据可以被取出,你可以通过这个方法释放语句句柄,并且释放系统资源。例如:
$rc = $sth->finish;
rows
返回在(updated,delete等)操作中作用的行的数目。这通常被用在do或者非select的execute()语句之后。例如:
$rv = $sth->rows;
NULLABLE
返回一个数组的引用,TRUE分别表示这个列可以允许NULL。
$null_possible = $sth->{NULLABLE};
NUM_OF_FIELDS
通过SELECT或者LISTFILEDS语句返回的列的数目。如果数目为0表示一个非SELECT语句的执行,例如,INSERT,DELETE或者UPDATE等。
$nr_of_fields = $sth->{NUM_OF_FIELDS};
data_sources
这个方法返回在localhost中的mysql服务中可用的数据库的数组。
@dbs = DBI->data_sources(“mysql”);
ChopBlanks
这个方法决定了返回的行中是否去除空格。
$sth->{'ChopBlanks') =1;
insertid
如果你使用了mysql的自动增值的特性,那么最新的自动增值将被存储。例如:
$new_id = $sth->{insertid};
is_blob
返回一个数组的引用,TRUE分别表示所指示的列是BLOB。
$keys = $sth->{is_blob};
is_key
返回一个数组的引用,TRUE分别表示所指示的列是KEY。
$keys = $sth->{is_key};
is_num
返回一个数组的引用,TRUE分别表示所指示的列包含了数字。
$nums = $sth->{is_num};
is_pri_key
返回一个数组的引用,TRUE分别表示所指示的列是一个主键。
$pri_keys = $sth->{is_pri_key};
is_not_null
返回一个数组的引用,FALSE表示这个列可以包含NULL,而你最好使用DBI标准中的NULLABLE属性。
$not_nulls = $sth->{is_not_null};
max_length、length
返回一个指示最大列的尺寸的数组的引用。最大长度是指在结果的表中的最大数值,LENGTH给出了理论上的最大值。
$max_lengts = $sth->{max_length};
$lengts = $sth->{length};
NAME
返回一个列名称的数组的引用。
$names = $sth->{NAME};
table
返回了表名称的数组的引用。
$tables = $sth->{table};
原文转自:www.ltesting.net
篇9:Perl语言中的“指针”自动测试脚本语言
在C语言中,指针的使用给我们带来了很大的方便,但是在Perl中没有直接提供这样的数据类型,在某些情况下就存在一些很不方便的地方, 例如:在调用函数时,如果参数值和返回值比较多,而且非常复杂的时候,仅仅是参数栈或返回值栈是不够用的。这时候,有两种
在C语言中,指针的使用给我们带来了很大的方便,但是在Perl中没有直接提供这样的数据类型,在某些情况下就存在一些很不方便的地方。
例如:在调用函数时,如果参数值和返回值比较多,而且非常复杂的时候,仅仅是参数栈或返回值栈是不够用的。这时候,有两种解决方法,一种是使用引用调用,这样可以传递象数组、哈希数组一类的数据,另外一种就是我要着重介绍的“指针”,主要用来传递复杂的结构,例如多维数组。下面,我用多维数组为例:
多维数组指针的创建非常简单,具体语句如下:
my $multi_array=[];
这时,$multi-array就是一个指针,它的内容是undefined. 下一步我们要给它赋值,语句如下:
@{$multi_array}=((a,...,z),(1,...,10),($a,...,$xx));
这时,$multi-array就成了一个指向二维数组的指针,当然,如果必要的话,你可以定义更多的维数,
如何使用这个二维数组的元素呢?
$multi_array->[0][1] #数组第一维,第二个元素
如何使用一行元素呢?
@{$multi_array->[0]} #二维数组的第一行元素
这样,你就可以方便的借助指针使用多维数组了。标量$multi_array就象一个普通的标量,在函数调用和返回时,就可以直接使用了。
原文转自:www.ltesting.net
★ 和LNMP相比,LNMPA是否效率更高?linux服务器应用
★ hr面试题及答案
★ 面试题及答案
【perl连接access数据库自动测试脚本语言(共9篇)】相关文章:
编程毕业论文范文大全2023-01-14
cgd是什么文件,cgd文件用什么程序打开2023-02-26
酒店信息管理系统论文提纲2022-09-22
爆破字典生成小脚本脚本安全2022-05-06
securytas.ro sql 注入2022-05-07
WIN技巧:内网用户建个人服务器很简单2022-09-27
php实习报告2022-10-05
基于Qt的学籍信息管理系统的界面设计论文2022-10-16
Oracle SQL Injection Cheat Sheet脚本安全2023-02-16
IIS配置SMTP服务器服务器教程2022-09-09