Thread DBD::SQLite - Anzahl Zeilen abfragen
(21 answers)
Opened by Kean at 2011-05-09 09:16 2011-05-09T07:16:33 Kean Bereits beim Aufruf von execute() wird die Anzahl der betroffenen Zeilen zurückgegeben oder '0E0' wenn es einen Fehler gab. Die Fehlerbehandlung in Sachen DBI ist immer kritisch, wahrscheinlich liegt in Deinem Fall ein Fehler vor, der nicht bemerkt wird. Empfohlen wird, RaiseError zu setzen, und jeden Schritt zu evaluieren. Damit wird jeder Fehler zu einer Exception und es kann $@ abgefragt werden. Es beginnt breits beim Connect: Code (perl): (dl
)
1 2 3 4 5 6 my $dsn = "DBI:mysql:database=$cfg->{mysql}->{base};host=$cfg->{mysql}->{host};port=$cfg->{mysql}->{port}"; eval{ $self->{DBH} = DBI->connect_cached( $dsn, $cfg->{mysql}->{user}, $cfg->{mysql}->{pass}, {RaiseError => 1, PrintError => 0} ); }; Wobei das übrigens die einzige Möglichkeit ist, über $@ (EVAL_ERROR) zu erfahren, warum der connect schief geht. Noch ein bischen Code: Code (perl): (dl
)
1 2 3 4 5 6 7 eval{ my $sth = $self->{DBH}->prepare_cached($ref->{query}); $self->{SCALAR} = $sth->execute; $self->{CB} = $ref->{CB}; $self->{STH} = $sth; }; return if $@; Damit ist alles erfasst, was irgendwie schief gehen kann. Last edited: 2011-05-09 09:44:34 +0200 (CEST) |