fetchrow_array()与fetchrow_arrayref()与fetchrow_hashref()的使用方法

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);
}

下面将详细介绍 用法,附有代码以及数据库表格

数据库表内容如下:

fetchrow_array()与fetchrow_arrayref()与fetchrow_hashref()的使用方法_第1张图片

下面代码将会帮助你理解 三个函数的 具体使用  

#!/usr/bin/perl
use DBI;
my $host = "localhost";
my $driver ="mysql";
my $database = "catchdata";
my $dsn = "DBI:$driver:database=$database:$host";
my $userid ="root";
my $password = "root123";
my $dbh = DBI->connect($dsn,$userid,$password) or die $DBI::errstr;
my $sth3;

$sth3 = $dbh->prepare("select * from cmd_data");
$sth3->execute() or die $DBI::errstr;

print "---fetchrow_hashref的使用-----\n";
while($a = $sth3->fetchrow_hashref()){
print "$a->{'host'}\n";
print "$a->{'time'}\n";
print "$a->{'UID'}\n";
}

print "注意对比fetchrow_hashref()与 fetchrow_arrayref的引用方法\n";

print "-----fetchrow_arrayref的使用-------\n";
$sth = $dbh->prepare("select * from cmd_data");
$sth->execute() or die $DBI::errstr;

while(my $a1 = $sth->fetchrow_arrayref()){
print "$a1->[2]\n";
print "$a1->[1]\n";
print "$a1->[3]\n";
}

print "-----fetchrow_array的使用1-------\n";
my $sth1 = $dbh->prepare("select count(*)from cmd_data where host='HOST:10.1.1.5'");
$sth1->execute() or die $DBI::errstr;
my $record;
$record = $sth1->fetchrow_array();
print"\$record == $record\n";

print "-----fetchrow_array的使用22-------\n";
my $sth2 = $dbh->prepare("select * from cmd_data");
$sth2->execute() or die $DBI::errstr;
while( my @rows = $sth2->fetchrow_array()){
print("time:$rows[1]\n");
print("host:$rows[2]\n");
print("UID:$rows[3]\n");
}

运行结果如下   

fetchrow_array()与fetchrow_arrayref()与fetchrow_hashref()的使用方法_第2张图片fetchrow_array()与fetchrow_arrayref()与fetchrow_hashref()的使用方法_第3张图片

你可能感兴趣的:(perl)