Since I never worked with an SQLite DB I am not sure how well this will work
but you might want to have a look at the following command in the DBI:
$dbh->quote($value);

This should make the whole thing SQL approved with escaped special
characters and everything... Now as I said I have no idea how this will work
on SQLite but it is worth a try.

See: http://search.cpan.org/~timb/DBI-1.601/DBI.pm#quote for more
information

Regards,

Rob



On 10/29/07, Beginner <[EMAIL PROTECTED]> wrote:
>
> Hi,
>
> I am trying to insert a lots file paths into an SQLite table and am
> having trouble with filenames with apostrophes in.
>
> Below is the snippet I have been using. I have experimented with
> sprintf,  qq and a combination of both but can't get a quoting system
> that will get DBI to accept paths like q(/path/to/Camellia japonica
> 'Mercury'2.tif).
>
> I don't want to transform the path. I want to maintain the true path
> without having to do substitiutions everytime the data gets read from
> or inserted into the table. It would be a maintenance headache
> otherwise.
>
> Is there a technique for this anyone or any advice anyone can offer
> (apart from shooting the users how uploaded the files in the first
> place).
>
> TIA,
> Dp.
>
> sub Check_if_exists {
> my $name = shift;
> my $str = qq($name);
> my $statement = sprintf("SELECT id FROM files where
> path='%s'",$str);
> # my $statement = qq("SELECT id FROM files where path="$str"");
> my $rows = $dbh->selectrow_array($statement) or die "Can't
> selectrow_array statement=$statement: ",$DBI::errstr,"\n";
> return $rows;
> }
>
>
> DBD::SQLite::db selectrow_array failed: near "Mercury": syntax
> error(1) at dbdimp.c line 271 at myfile.pm line 158.
> Can't selectrow_array statement=SELECT id FROM images where
> tiffpath='/data/finished/GB 10484/Camellia japonica
> 'Mercury'2.NEF.tif': near "Mercury": syntax error(1) at dbdimp.c line
> 271
>
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> http://learn.perl.org/
>
>
>

Reply via email to