hotti: mySQL und Perl

Beitrag lesen

genauso wie Deins, ich mache in Update und zähle die affected rows:

use strict;
use lib '/var/www/vhosts/rolfrost.de/cgi-bin';
use DBI;
use Basic;

my $dbh = connMySQL;

my $st = qq(UPDATE spamprot SET zeitstempel = 4);

my $sth=$dbh->prepare($st);
$sth->execute();
my $rows=$sth->rows;
$sth->finish();

print "$rows\n"; # und das stimmt ;-)

und zurück kommt in dem Fall "1" :-) oder irre ich mich?

Zum Verständis (was wir beide haben):
Die Spalte zeitstempel bekommt ein update auf 4. Da keine whereKlause drin ist, werden alle records das Update bekommen, das sind bei mir 3 records und die 3 steht dann in $rows. In einem zweiten Durchlauf ist $rows == 0, weil sich per update keine Änderung ergab.

Mache ich einen dritten Durchlauf mit
my $st = qq(UPDATE spamprot SET zeitstempel = 5);

zeigt mir $rows wiederum, dass 3 rows vom update betroffen sind.

Schade, dass das bei Dir nicht so tut, aber wie gesagt, ich vermute einen oder mehrere Bugs. Schraub Dich mal durch CPAN und die Repository vom DBI.pm, vielleicht wirst Du da fündig.

Evntl. ist auch
use strict;
use warnings;

im PerlCode hilfreich, nicht dass da der Hase im Pfeffer liegt.

--Hotte