You generally use placeholders or DBI's quote but usually not both. I never use quote myself. placeholders are generally the way to go because you can often prepare the SQL once with the placeholders and execute as many times as you like - thus saving parsing and preparing of the SQL repeatedly.
When DBI says don't quote placeholders it means don't run the quote method on placeholders i.e., don't do:
$s = $h->prepare(/select * from table where a = ?/); $s->execute($h->quote("myvalueforcolumna"));
You use quote when you are building all the SQL yourself and not using placeholders so the above would be:
$s = $h->prepare(q/select * from table where a = / . $h->quote("myva +lueforcolumna");
Try and stick with placeholders. I don't know your schema but you can usually do something like:
select col1, col2, col3 from tab_name where (? is null or foo = ?) a +nd (? is null or bar = ?) and (? is null or baz = ?)
then pass each value for foo, bar and baz twice
In reply to Re^3: DBI, place holders and CGI forms
by mje
in thread DBI, place holders and CGI forms
by Anonymous Monk
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |