쿼리 결과를 두 번 사용하고 싶습니다.
포인터를 다시 배치하여 처음부터 두 번째 결과를 읽는 방법은 무엇입니까? (단지 편의상 화면에 인쇄) 아래
예 :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";
}
감사합니다. –
거대한 파일을 다룰 때 일반적으로 한 번에 파일을 slurping하는 것보다 루프 접근이 더 좋습니다. 대형 데이터 세트에도 동일하게 적용됩니다. 따라서 IMHO는 불필요하지 않습니다. – dgw
@dgw, OP가 원하는 기능을 얻으려면 DBI는 전체 결과 세트를 자동으로 메모리에 저장해야합니다! 너는 사실 내게 동의하고있어. – ikegami