Why are you preparing each time with placeholders? Should be more like:
my $sth_udt = $dbh->prepare(qq{UPDATE items set price = ? WHERE oid =
+?});
while (my $val = $sth->fetchrow) {
my $price = param("item_${val}_price");
$sth_udt->execute($price, $val);
# You could probably just do:
# $sth_udt->execute(param("item_${val}_price"), $val);
}
Cheers,
KM | [reply] [d/l] |
Now that's a good call. Good syntax as well. Thanks a ton.
It defeats the purpose of the placeholders to call them every loop
My problem was my inability to realize i could make more than one statement
handle, that makes everything easier, even though the man
pages no doubt explicitly state that you can. Go go perlmonks.
Ok, now thanks for all the help, here is the finished product:
Note that i stayed with the bind_columns/fetch idea, which should be faster.
I suppose, though, that a bind_col might speed it up even more...
$sth = $dbh->prepare(q{SELECT oid from items where orderid = ?}) ||
+die $dbh->errstr;
$sth->execute($orderid) || die $dbh->errstr;
$sth->bind_columns(\$oid); # Binds each column to $oid, through ref
+erence
my $sth_udt = $dbh->prepare(qq{UPDATE items set price = ? WHERE oid
+= ?});
while ($sth->fetch) {
my $price = param("item_${oid}_price");
$sth_udt->execute($price, $oid);
# You could probably just do this, but it didn't work for me...?
+!?!:
# $sth_udt->execute(param("item_${oid}_price"), $oid);
}
| [reply] [d/l] |
whoops, didnt mean to go ANON | [reply] |