Another thing I like to avoid is the dreaded and error-prone counting of placeholders. To accomplish this goal I build an array of fields I want, and use it multiple times. Example:
my @keys = qw(time_value hour_24 minute second hour_12 am_pm); my %time = ( time_value => "2:30:12pm", hour_24 => 14, hour_12 => 2, minute => 30, second => 12, am_pm => "pm" ); my $sql = "INSERT INTO" . " time (" . join(",", @keys) . ")" . " VALUES (" . join(",", ('?') x @keys) . ")"; my $sth = $dbh->prepare($sql); $sth->execute(@time{@keys});
Note I keep the values I'm executing in a hash with keys matching the field names. This allows me to use a hash slice so even the execute() call is guaranteed to match.
In reply to Re: Re: Database field names in code
by revdiablo
in thread Database field names in code
by disciple
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |