私はクエリの結果を2度使いたいと思います。
ポインタを再配置して、最初から2回目の結果を読み始めるにはどうすればよいですか? (ただ簡単にするためにスクリーニングするための印刷)以下
例:perlデータベースのクエリ結果を再読く方法
if ($dbh = DBI->connect("DBI:mysql:database=tng;host=ip", "username", "password")) {
$strSQL = "select * from table";
if ($strQuery = $dbh->prepare($strSQL)) {
if ($strQuery->execute()) {
while (@data = $strQuery->fetchrow_array()) {
print $data[0];
}
--reposition to top and reread the query result and do something else with the data-- $strQuery->finish;
}
else {
$strMsg = "$strDateTime ERROR -- unable to execute statement: " . $strQuery->errstr . "\n";
print logFile "$strMsg";
}
}
else {
$strMsg = "$strDateTime ERROR -- unable to prepare statement: " . $dbh->errstr . "\n";
print logFile "$strMsg";
}
$dbh->disconnect();
}
else {
print logFile "$strDateTime ERROR -- unable to connect to iptables database ... " . DBI->errstr . " \n";
}
ありがとうございました:) –
巨大なファイルを扱う場合、一般にループアプローチがファイルを一度にスラーピングするよりも好まれます。大きなデータセットにも同じことが言えます。ですから、IMHOは不必要ではありません。 – dgw
@dgw、OPが望む機能を得るために、DBIは結果セット全体をメモリに自動的にスラップしなければならないでしょう!あなたは実際に私に同意しています。 – ikegami