[quote=Dubu,02.06.2004, 21:45]siehe oben[/quote]
Und noch etwas besser ist es, das Statementhandle zu speichern, weil doch die Daten in der Schleife von der Menge her immer die gleichen sind. Dadurch wird die Schleife schlanker und einunddasselbe Statement muß nicht bei jedem Durchlauf erst wieder auf Gültigkeit geprüft werden.
Ansosten macht die Konstruktion mit "prepare/execute" keinen Sinn und "do" wäre zutreffender:
$dbh->do($statement, undef, @lines) or ....
Konstruktion mit prepare/execute:
...
my $dbh = DBI->connect("dbi:mSQL:T1:fabian:3306", "password", "fabian")
or die "Kann Datenbank nicht oeffnen: " . DBI->errstr();
my $statement = 'insert into fabian (month1, day1, time1, ip, port, month2, day2, time2, message) values (?,?,?,?,?,?,?,?,?)';
my $sth=$dbh->prepare($statement) or die "Prepare $statement fehlgeschlagen: ".$dbh->errstr();
while (defined(my $getline=<FH>)) {
my @lines = split(/ /, $getline, 8);
$sth->execute(@lines)
or warn "Fehler beim Schreiben in Datenbank: " . $sth->errstr();
}
$dbh->disconnect();
...
\n\n
<!--EDIT|steffenw|1086380516-->
$SIG{USER} = sub {love 'Perl' or die};