Corion's got good ideas, but as it looks like you're playing with DBI, you'd really want to go with place holders if you can. Even if this is an intranet application, you should be thinking about security and taintness of your data at all times; DBI's placeholders do any automatic quoting of what goes in as to protect your database from harm.
If I assume that you eventually have code like:
# @where_clause has been fully defined
my $query = "SELECT * FROM $table WHERE ";
$query .= join " AND ", @where_clause;
my $sth->prepare( $query ) or die #stuff;
$sth->execute( ) or die #stuff;
Then you can still use placeholders by pushing the data into another array, which is then passed to the execute() function:
# From your code above:
if (defined($allocated_to) && $allocated_to ne '') {
push @where_clause, "UPPER(ALLOCATED_TO) LIKE UPPER(?)";
push @entries, 'ALLOCATED_TO';
push @values, '\%$allocated_to\%';
}
#
# yada yada yada
#
my $query = "SELECT * FROM $table WHERE ";
$query .= join " AND ", @where_clause;
my $sth->prepare( $query ) or die #stuff;
$sth->execute( @values ) or die #stuff;
-----------------------------------------------------
Dr. Michael K. Neylon - mneylon-pm@masemware.com
||
"You've left the lens cap of your mind on again, Pinky" - The Brain
"I can see my house from here!"
It's not what you know, but knowing how to find it if you don't know that's important
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.