in reply to RFC DBIx::Handy
Have a look at DBIx::Simple. It's just a glue module, like yours, and already does what you appear to be looking for. It uses SQL::Abstract for query abstraction, which handles the hash case very well.
For comparison, I've translated your examples:
# DBIx::Handy $DB->insert(table => 'customers', data => $form_data); # DBIx::Simple $db->insert('customers', $form_data); # DBIx::Handy my $href = $DB->execute(sql => $sql, method => 'fetchrow_hashref', dat +a => \@foo); # DBIx::Simple my $href = $db->query($sql, @foo)->hash; # DBIx::Handy my $sth = $DB->execute(sql => $sql, data => \@foo); while (my $row = $sth->fetchrow_hashref) { ... } # DBIx::Simple my $result = $db->query($sql, @foo); while (my $row = $result->hash) { ... }
Note, by the way, that data from $cgi->Vars is filthy and should be carefully matched and untainted before use in databases. Even if you use placeholders. In practice, I find it easier (and a little more secure) to build a new hash (or use individual variables even).
Juerd # { site => 'juerd.nl', plp_site => 'plp.juerd.nl', do_not_use => 'spamtrap' }
|
|---|