[Israel.pm] DBI
Shlomi Fish
shlomif at iglu.org.il
Mon Nov 1 02:38:31 PDT 2010
Hi Meir,
I don't like the fact that you are top-posting and not properly "> "-ing the
quoted reply (and quote the entire E-mail fully while also adding an HTML
attachment, which increases the size of the messages considerably). Please
look up some E-mail netiquette. I'll reply to your message anyway.
On Monday 01 November 2010 10:53:57 Meir Guttman wrote:
> Dear Shlomi,
>
> I must confess that using a placeholder to avoid quoting problems never
> occurred to me. Good to learn new tricks.
You have not known about placeholders yet? Shame on you.
>
> And I think that your answer for my "challenge" example wouldn't work. Many
> quoting methods failed with quoting of the "xxx" in the "OPTIONALLY
> ENCLOSED BY XXX" part. My solution, after much experimentation and grief,
> was as follows:
>
>
>
> my $sth = $dbh->do (
>
> "LOAD DATA INFILE '$LDI_file_name' "
>
> ."REPLACE INTO TABLE $tables "
>
> ."COLUMNS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY ". qq|"'"| . "
> ESCAPED BY '\\\\' "
>
> ."LINES TERMINATED BY '\r\n\' "
>
1. This is better written as a here-document.
2. You have several possible SQL injection problems there (what if
$LDI_file_name contains single-quotes?).
3. The «. qq|"'"| .» is better written as:
<<<
qq{COLUMNS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY "'" ESCAPED BY '\\\\'}
>>>
It would be much neater inside a big here-document, however, and it would be
the same thing at the Perl level.
> );
>
>
>
> I could of course use placeholders for the LDI filename and the Table name,
> but this is not the issue. The issue of this whole thread is quoting. And
> my example was meant to show one problem, the one I solved with the
> qq|"'"| construct.
The issue of this whole thread was how to properly pass arbitrary data that
may include single-quotes to SQL, and placeholders is generally the right
answer for that. And see what I've written about the qq|"'"| thing.
Regards,
Shlomi Fish
--
-----------------------------------------------------------------
Shlomi Fish http://www.shlomifish.org/
http://www.shlomifish.org/humour/ways_to_do_it.html
<rindolf> She's a hot chick. But she smokes.
<go|dfish> She can smoke as long as she's smokin'.
Please reply to list if it's a mailing list post - http://shlom.in/reply .
More information about the Perl
mailing list