Alright, I'm not going to say that it's finished but it's a lot better than it was...
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;
}
Comments, suggests?
Matthew Musgrove
Who says that programmers can't work in the Marketing Department?
Or is that who says that Marketing people can't program?