Perl dbi sqlite“select*”仅返回第一个元素
perl dbi sqlite出现问题 我已经建立了一个数据库,并使用sqlite命令行进行了检查。 现在我想在这个数据库中搜索,但它不起作用 所以我试着做一个“选择*” 这将只打印数据库中的第一个元素,但不打印表中的所有内容 我认为导致select*失败的错误与阻止我使用类似%..%的东西的错误相同 这是相关代码,如果代码正确且数据库表看起来良好,还有什么可能导致问题Perl dbi sqlite“select*”仅返回第一个元素,perl,sqlite,select,dbi,Perl,Sqlite,Select,Dbi,perl dbi sqlite出现问题 我已经建立了一个数据库,并使用sqlite命令行进行了检查。 现在我想在这个数据库中搜索,但它不起作用 所以我试着做一个“选择*” 这将只打印数据库中的第一个元素,但不打印表中的所有内容 我认为导致select*失败的错误与阻止我使用类似%..%的东西的错误相同 这是相关代码,如果代码正确且数据库表看起来良好,还有什么可能导致问题 my $dbh = DBI->connect("dbi:SQLite:dbname=$dbfile","","") |
my $dbh = DBI->connect("dbi:SQLite:dbname=$dbfile","","") || die "Cannot connect: $DBI::errstr";
my $sth = $dbh->prepare('SELECT * FROM words');
$sth->execute;
my @result = $sth->fetchrow_array();
foreach( @result) {
print $_;
}
fetchrow\u数组仅获取一行
试一试
根据,fetchrow_数组
获取下一行数据并将其作为包含字段值的列表返回
如果需要所有数据,可以重复调用fetchrow\u array或fetchrow\u arrayref,直到到达表的末尾,也可以使用fetchall\u arrayref:
fetchall_arrayref方法可用于从准备和执行的语句句柄获取要返回的所有数据。它返回对数组的引用,该数组每行包含一个引用
代码如下所示
use strict;
use warnings;
use DBI;
my $dbfile = 'words.db';
my $dbh = DBI->connect("dbi:SQLite:dbname=$dbfile", '', '') or die "Cannot connect: $DBI::errstr";
my $sth = $dbh->prepare('SELECT * FROM words');
$sth->execute;
my $result = $sth->fetchall_arrayref;
foreach my $row ( @$result ) {
print "@$row\n";
}
你应该给你的答案加上严格的要求来改进它。否则,您就成功了。DBI->connect的密码参数处的代码中有一个错误
use strict;
use warnings;
use DBI;
my $dbfile = 'words.db';
my $dbh = DBI->connect("dbi:SQLite:dbname=$dbfile", '', '') or die "Cannot connect: $DBI::errstr";
my $sth = $dbh->prepare('SELECT * FROM words');
$sth->execute;
my $result = $sth->fetchall_arrayref;
foreach my $row ( @$result ) {
print "@$row\n";
}