2012-11-06 31 views
0

下面是使用perl连接mysql数据库和检索结果的代码。使用perl连接到数据库时的打印内容

在下面的示例中,samples表有10列。我只是想将记录99的第二列和第三列变成变量。

有人可以帮我吗?

use strict; 
use warnings; 
use DBI; 

my $dbh = DBI->connect('dbi:mysql:perltest','root','password') or die "Connection Error: $DBI::errstr\n"; 
my $sql = "select * from samples where record='99'"; 
my $sth = $dbh->prepare($sql); 
$sth->execute or die "SQL Error: $DBI::errstr\n"; 
while (my @row = $sth->fetchrow_array) { 
print "@row\n"; 
} 

在此先感谢

回答

2

此代码将让你行的第二和第三列到变量:

while (my @row = $sth->fetchrow_array) { 
    $var1 = @row[1]; 
    $var2 = @row[2]; 
} 
+0

感谢。它的工作。我也试过这个“打印连接(”
“,@ row);”在数组“@row”中显示由新行分隔的所有内容。我在print语句中写了“
”,因为我正在使用perl cgi。 –

+2

请原谅我。我认为我读错了。不应该是'$ row [1]'和'$ row [2]'而不是'@row [1]'和'@row [2]'。 – slayedbylucifer

+0

@Dheeraj:是的,它绝对应该,因为@row [1]和@row [2]'是一个元素数组切片。除非用'($ var1,$ var2)= @row [1,2];'替换这两行,否则切片在这里是多余的。就目前而言,这会产生一个警告'标量值@row [1]更好地写为$ row [1]',对于另一个带有'use warnings的赋值类似的警告;'对他不使用警告感到羞耻。 – flesk

相关问题