in reply to DBI UPDATE w comma in field value

This prints three values:

my $xbinds = join ", ", @binds; print "update [$udate]\n"; print "binds --> {$xbinds }\n";

But here you pass the three plus one more value, the $id to ->execute:

$sth->execute(@binds, $id);

So, DBI is right, you are passing four values where it only expects three.