Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: DBD::CSV - SQL Syntax - "AND" clause is not working properly

by marto (Chancellor)
on Aug 28, 2012 at 11:20 UTC ( #990217=note: print w/ replies, xml ) Need Help??


in reply to DBD::CSV - SQL Syntax - "AND" clause is not working properly

Replace:

my $query = "SELECT VERSION from test.csv WHERE OS="Fedora" AND RELEASE="Stentz"

with:

my $query = "SELECT VERSION from test.csv WHERE OS='Fedora' AND RELEASE='Stentz'";

You can't be posting the code you're actually running. You were missing a semicolon at the end of the line, also note how I quote the values. You'd have the same problem with Oracle, contrary to your claim.

Update: Basic working example:

#!/usr/bin/perl use strict; use warnings; use DBI; my $dbh = DBI->connect ("dbi:CSV:") or die "Cannot connect: $DBI::errs +tr"; $dbh->{csv_tables}->{testtable} = { 'file' => 'test.csv', }; my $query = "SELECT VERSION from test.csv WHERE OS='Fedora' AND RELEAS +E='Stentz'"; my $sth = $dbh->prepare($query); $sth->execute; $sth->dump_results(); $dbh->disconnect();


Comment on Re: DBD::CSV - SQL Syntax - "AND" clause is not working properly
Select or Download Code
Re^2: DBD::CSV - SQL Syntax - "AND" clause is not working properly
by slayedbylucifer (Scribe) on Aug 28, 2012 at 11:26 UTC

    The missing ";" was a typo. My actual query looks like below:

    my $query = "SELECT COLUMN3 FROM $table WHERE COLUMN1=\'$var1\' AND CO +LUMN2=\'$var2\'";

    I already tried the "Single quotes" as above and it fails as well. I had to escape the single quotes else it won't interpret the Value that is stored in the variables.

    Thanks for your time.

      When posting please provide an example which you are actually running, not doing this potentially wastes peoples time, posting unrelated code and a made up problem. I've provided a working example based on your csv file and the query you ran. Stop using variables like this, read and understand 'Placeholders and bind values' from the DBI documentation and never ever forget the ballad of Little Bobby Tables. SQL_injection.

        I understand your concern. But i cannot post the actual code as it has company sensitive information and will take me a day to edit that info from the code. so I always duplicate it with the test code and example and then only post it on the forum.

        thanks for your time.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://990217]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (12)
As of 2014-10-21 18:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (106 votes), past polls