Ich habe bereits auf der Website nach diesem gesucht, konnte aber nichts finden, was meine Frage beantwortet hat. Was bringt mich zu den Details:Wie überprüfe ich, ob mehr als ein Datensatz von DBI-Abfrage in Perl zurückgegeben wurde?
Ich Abfrage Datenbank mit einer einfachen Select-Abfrage, realistisch (angesichts des Szenarios) sollte es nie mehr als etwa 5 bis 6 Datensätze zurückgeben. Ich möchte nur überprüfen, ob mehr als einer zurückgegeben wurde. Und wenn mehr als eine return act darauf war (in einer else-Anweisung), wenn nur eine zurückgegeben wurde, dann gehe ich mit dem Skript voran.
my $sql = qq { SELECT col1, col2, col3 FROM table WHERE col1 = 'foo' }; my $sth = $dbc->prepare_cached($sql) or die "Could not prepare statement: " . $dbc->errstr; $sth->execute() or die "Could not execute statement: " . $sth->errstr; # Not sure how to efficiently check for more than one row returned and still progress if true... This is my problem! I'm thinking a nested if to see if any rows were returned, and then progress with the check of one or more rows? But how can this me checked (like a count function?) if (my $ref = $sth->fetchrow_hashref()) { # One row was returned... } else { # More than one row was returned... Uh oh! }
Wenn euch eines Threads wissen, dass ich nicht so beantwortet diese Frage einfach umleiten meine ausfindig machen konnte, und ich werde diesen Thread zunichte machen!
Grüße, BorisTheBulletDodger!
Welche Arbeit werden Sie in der sonst tun, wenn mehr als eine Zeile zurückgegeben wird? – mleykamp
Ich werde einen Fehler protokollieren, der besagt, dass doppelte Zeilen für diese Abfrage vorhanden sind. –