Here's something i've been using for quite a while:
sub make_select_query {
my ($table, $select_fields, $conditions) = @_;
my $query = "SELECT ";
if ( defined $select_fields ) {
if ( ref($select_array) eq "ARRAY" ) {
$query .= join ",", @$select_array;
}
else {
$query .= $select_fields;
}
}
else {
$query .= "\*";
}
$query .= " FROM " . $table;
# only put the where and conditions in the query string
# if conditions are present
if (keys %$conditions) {
$query .= " WHERE ";
foreach my $key (keys %$conditions) {
push @conds, $key . "=\'" . $conditions->{$key} . "\'";
}
}
$query .= join " and ", @conds;
return $query;
}
Of course this has a number of shortcomings, such as:
All conditions use equality. This could be worked around by having a condition hash like this instead:
...
$condtions = {
"age" => " >= 21 ",
"sex" => " = female ",
};
But this is leading down the path that the more complicated your need, the less likely there will be a general solution that does exactly what you need.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.