It's very strange. I used your example but I still get the same problem. I
think I'll try this on a different machine tomorrow.
P Kishor-3 wrote:
>
> here is my simple test that works fine for me --
>
> -------------- db --------------
>
> [05:38 PM] ~/Sites/test$sqlite3 foo
> SQLite version 3.5.9
> Enter ".help" for instructions
> sqlite> .s
> CREATE TABLE members (userID INTEGER PRIMARY KEY, userName TEXT,
> userOccupation TEXT);
> sqlite> SELECT * FROM members;
> 1|richard|db maker
> 2|igor|db wizard
> 3|darren|db guru
> 4|dan|db master
> sqlite>.q
>
> -------------- script --------------
>
> [05:40 PM] ~/Sites/test$less foo.cgi
>
> #!/usr/local/bin/perl
>
> use strict;
> use warnings;
>
> use DBI;
>
> my $dbh = DBI->connect("dbi:SQLite:foo", "", "");
> my $sth = $dbh->prepare(qq{
> SELECT userID FROM members WHERE userName = ? AND userOccupation = ?
> });
>
> $sth->execute('richard', 'db maker');
>
> my $output;
> while (my @row = $sth->fetchrow_array) {
> $output .= "@row\n";
> }
>
> $sth->finish;
> $dbh->disconnect;
>
> print "Content-type:text/html\n\n";
> print "<html><body><h1>Hello World</h1> $output </body></html>";
>
> -------------- web page --------------
> Hello World
>
> 1
> -------------- end --------------
>
> On 9/18/08, P Kishor <[EMAIL PROTECTED]> wrote:
>> On 9/18/08, hugh111111 <[EMAIL PROTECTED]> wrote:
>> >
>>
>> > Hi P Kishor-3
>> > Thanks for your reply. I have altered my script according to your
>> > recommendation, unfortunately the problem remains. I have also used
>> the
>> > eval{ } function to capture the log messages. The log said "no such
>> column:
>> > userOccupation(1)" Not sure why it should append (1) to my column
>> name.
>>
>>
>> Post your db schema and a few rows... let's see what is going on
>>
>>
>>
>> >
>> > my new perl script is...
>> >
>> >
>> > #!/usr/bin/perl
>> >
>> > use DBI;
>> >
>> >
>> >
>> >
>> > my $sth = $dbh->prepare(qq{
>> > SELECT userID FROM members WHERE userName= ? AND userOccupation= ?
>> > });
>> >
>> >
>> > eval{ $sth->execute('John', 'Carpenter') }; warn("My warning is: $@")
>> if $@
>> >
>> > ;
>> >
>> > my $output;
>> > while (my @row = $sth->fetchrow_array ) {
>> > $output .= join(' ', @row) . "\n";
>> > }
>> >
>> > $dbh -> disconnect;
>> >
>> > print "Content-type:text/html\n\n";
>> > print "<html><body><h1>Hello World</h1> $output </body></html>";
>> >
>> >
>> >
>> > and a section of the log error message is...
>> >
>> > 18-Sep-2008 22:56:37 org.apache.catalina.core.ApplicationContext log
>> > INFO: cgi: runCGI (stderr):DBD::SQLite::db prepare failed: no such
>> column:
>> > userOccupation(1) at dbdimp.c line 271 at
>> > C:\tomcat\webapps\test\WEB-INF\cgi-bin\test.pl line 6.
>> > 18-Sep-2008 22:56:37 org.apache.catalina.core.ApplicationContext log
>> > INFO: cgi: runCGI (stderr):My warning is: Can't call method "execute"
>> on an
>> > undefined value at C:\tomcat\webapps\test\WEB-INF\cgi-bin\test.pl
>> line 10.
>> >
>> >
>> >
>> >
>> >
>> > P Kishor-3 wrote:
>> > >
>> > > On 9/18/08, hugh111111 <[EMAIL PROTECTED]> wrote:
>> > >>
>> > >> I'm using sqlite for my perl cgi website but I've got a problem
>> with the
>> > >> following select statement...
>> > >>
>> > >> SELECT userID FROM members WHERE userName='John' AND
>> > >> userOccupation='Carpenter'
>> > >>
>> > >> Yet if I input this statement from the sqlite3 command prompt it
>> works!
>> > >> The
>> > >> problem seems to be with the 'and', the following statement works
>> fine
>> > >> in
>> > >> both cgi script and from the sqlite3 prompt...
>> > >>
>> > >> SELECT userID FROM members WHERE userName='John'
>> > >>
>> > >> I hope somebody can help with this, I'm new to both perl and
>> sqlite but
>> > >> very
>> > >> keen on using sqlite for future projects.
>> > >>
>> > >>
>> > >>
>> > >> here is my perl script...
>> > >>
>> > >>
>> > >> #!/usr/bin/perl
>> > >>
>> > >> use DBI;
>> > >>
>> > >> my $output;
>> > >> my $sql = "SELECT userID FROM members WHERE userName='John' AND
>> > >> userOccupation='Carpenter'";
>> > >>
>> > >> my $dbh = DBI->connect("dbi:SQLite:test.db", "", "");
>> > >> my $sth = $dbh->prepare($sql);
>> > >> $sth->execute();
>> > >>
>> > >> while ( @row = $sth->fetchrow_array ) {
>> > >> $output .= "@row\n";
>> > >> }
>> > >>
>> > >> $dbh -> disconnect;
>> > >>
>> > >> print "Content-type:text/html\n\n";
>> > >> print "<html><body><h1>Hello World</h1> $output </body></html>";
>> > >>
>> > >>
>> > >
>> > > always bind variables. See untested code below
>> > >
>> > > #!/usr/bin/perl
>> > >
>> > > use DBI;
>> > > my $dbh = DBI->connect("dbi:SQLite:test.db", "", "");
>> > >
>> > > my $sth = $dbh->prepare(qq{
>> > > SELECT userID
>> > > FROM members
>> > > WHERE userName = ? AND userOccupation = ?
>> > > });
>> > >
>> > > $sth->execute('John', 'Carpenter');
>> > >
>> > > my $output;
>> > > while (my @row = $sth->fetchrow_array ) {
>> > > $output .= join(' ', @row) . "\n";
>> > > }
>> > >
>> > > $dbh -> disconnect;
>> > >
>> > > print "Content-type:text/html\n\n";
>> > > print "<html><body><h1>Hello World</h1> $output </body></html>";
>> >
>> > > _______________________________________________
>> > > sqlite-users mailing list
>> > > [email protected]
>> > > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>> > >
>> > >
>> >
>> >
>> > --
>> > View this message in context:
>> http://www.nabble.com/newbie-problem-with-select-statement-using-%27AND%27-tp19561141p19562855.html
>> >
>> > Sent from the SQLite mailing list archive at Nabble.com.
>> >
>> > _______________________________________________
>> > sqlite-users mailing list
>> > [email protected]
>> > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>> >
>>
>>
>>
> _______________________________________________
> sqlite-users mailing list
> [email protected]
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
>
--
View this message in context:
http://www.nabble.com/newbie-problem-with-select-statement-using-%27AND%27-tp19561141p19564103.html
Sent from the SQLite mailing list archive at Nabble.com.
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users