Also, looping over multiple fields and executing one query for each is most likley going to be a huge performance loss. You'd probably be better off constructing one query, even if you need to prepare it every time. You might try something like this:update mytable set ? = 'blah'; # disallowed update mytable set myfield = ?; # allowed
This uses interpolation instead of query binding. If you always specify your mysql columns in the same order, you could use binding instead:my %user_info; my $query = "update tUser Set ". (join ", " map {"$_ = $user_info{$_}"} keys %user_info). " where UserID = $user_info{UserID}";
Alan# Warning, untested code, to be used for inspiration only my %user_info; my $query = "update tUser Set ". (join ", " map {"$_ = ?"} sort keys %user_info). " where UserID = $user_info{UserID}"; my $sth = $dbh->prepare($query) or die; $sth->execute(map {$user_info{$_}} sort keys %user_info);
In reply to Re: DB Update w/ Hash
by ferrency
in thread DB Update w/ Hash
by Jonas
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |