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$/
In reply to Re: DB Help Request
by jonadab
in thread DB Not UPDATE-ing
by vbrtrmn
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |