Try adding a SELECT, to see whether the WHERE clause
is matching the records at all...
my $SELECT = "SELECT * FROM mytable WHERE usercode=? AND unsubscribe
+dby = ''";
my $UPDATE = "UPDATE mytable SET subscribed = '0', unsubscribedby =
+'SYSTEM' WHERE usercode=? AND unsubscribedby = ''";
for (@usercodelist) {
my $sth = $DBH->prepare($SELECT);
my $q = $sth->execute($_);
while (my $r = $q->fetchrow_hashref()) {
print "Matched $$_{usercode}\n";
}
$sth = $DBH->prepare($UPDATE);
$sth->execute($_)
or die "<div>Could not execute SQL statement ... maybe invalid?</d
+iv><div>$!</div>";
$sth->finish();
}
If you don't get any "Matched" lines, then the WHERE
clause is the problem. If all the correct records
get "Matched" lines, then the WHERE clause is not
the problem.
$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b->()}}
split//,".rekcah lreP rehtona tsuJ";$\=$ ;->();print$/
|