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