On 29 Oct 2007 at 10:55, Paul Lalli wrote:
> On Oct 29, 12:31 pm, [EMAIL PROTECTED] (Dr.Ruud) wrote:
> > "Beginner" schreef:
> >
> > > I am trying to insert a lots file paths into an SQLite table and am
> > > having trouble with filenames with apostrophes in.
> >
> > Use placeholders,
>
> Good advice.
>
> > so prepare/execute.
>
> irrelevant advice, nothing to do with the problem at hand. There is
> no reason to alter the OP's method of using selectrow_array.
>
> my ($val) = $dbh->selectrow_array("SELECT foo FROM bar WHERE id = ?",
> undef, q{stuff'with'quotes'});
>
> http://search.cpan.org/~timb/DBI-1.601/DBI.pm#selectrow_array
>
Being new to DBI (and not much of expert in perl anyway) so I can't
add much to the debate.
What I can say is that this always dies
my $statement = sprintf("SELECT foo FROM bar where path=%s",$dbh-
>quote($name));
my $rows = $dbh->selectrow_array($statement) or
die "Can't selectrow_array statement=$statement: ",$DBI::errstr,"
NO:",$DBI::err,"$DBI::state\n";
or this:
my ($rows) = $dbh->selectrow_array("SELECT foo FROM bar where
path=?",undef,q($name)) or die ....snip
whereas if I am do
my $statement = sprintf("SELECT foo FROM bar where path=%s",
$dbh->quote($name));
my $sth = $dbh->prepare($statement) or
die "PREPARE:statement=$statement: ",$DBI::errstr,"\n";
$sth->execute or die "EXECUTE: statement=$statement:
",$DBI::errstr," NO:",$DBI::err,"\n";
my @rows;
while (defined(my $i = $sth->fetchrow_array)) {
push(@rows,$i);
}
It will process. What I want is to check if a fully qualified file
path exists before attempting to insert a new record so I opted for
the shorthand notation.
I didn't understand the 2 argument list in Paul's selectrow_array
either.
I am currently fighting with
$dbh->last_insert_id(undef,undef,undef,undef)
which constantly returns 0 so I can't get any further with my
original query except to say the first one always returns a code to
indicate a problem whereas the more verbose latter method will work.
BTW: SQLite 3.5.1
DBI: 1.6.1.
Any further advice appreciated.
Dp.
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/