Comments, suggests?foreach (<>) { my ($item_id, $upc) = split(",",$_); my $status = upsert($dbh, $table, $item_id, $upc); print "Item #: $item_id, UPC: $upc, Status: $status\n"; } sub upsert { my ($rows, $rows2, $status); my $true = "0E0"; my ($dbh, $table, $item_id, $upc) = @_; my $sth = $dbh->prepare("UPDATE $table SET upc=? WHERE item_id=?;") +or die $dbh->errstr; my $sth2 = $dbh->prepare("INSERT INTO $table (item_id, upc) VALUES(? +, ?);") or die $dbh->errstr; $sth->execute($upc, $item_id); $rows = $sth->rows; ($rows == 0) ? $true : $rows; # from DBI pod (using variable instea +d of "0E0") print "rows is $rows\n" if ($DEBUG); if ($rows < 1) { print "Didn't update so trying to insert...\n" if ($DEBUG); $sth2->execute($item_id, $upc); $rows = $sth2->rows; ($rows == 0) ? $true : $rows; print "rows is $rows\n" if ($DEBUG); if ($rows < 1) { print "Didn't insert so giving up...\n" if ($DEBUG); }else{ $status = "Inserted"; } }else{ $status = "Updated"; } return $status; }
In reply to Re: Database Update or Insert
by Mr. Muskrat
in thread Database Update or Insert
by Mr. Muskrat
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |