Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re: Re: mySQL Query Problem

by kidd (Curate)
on Feb 13, 2003 at 12:58 UTC ( #234957=note: print w/replies, xml ) Need Help??

in reply to Re: mySQL Query Problem
in thread mySQL Query Problem


Here is a test I created to see the problem...considering this code:

#!/usr/bin/perl -w use strict; use CGI::Carp qw(fatalsToBrowser); use BaboonDB; my $user = "user\"; my $name = "kidd"; my $place = "CANCUN%%MEXICO"; my $title = "A test to see the problem"; my $img = "none"; my $msg = "This is a test with a question, how are you?"; my $cat = "probl"; $user = lc($user); if($img =~ /^\s*$/){ $img = "none"; } $place = lc($place); my($state,$country) = split("%%", $place); #split te place $country =~ s/usa/estados unidos/g; $country = "\u$country"; $country =~ s/\s+(\w)/ \u$1/gi; $country =~ s///gi; $state = "\u$state"; $state =~ s/\s+(\w)/ \u$1/gi; my($dbh,$sth,@data,$actual); $dbh = BaboonDB->connect(); my $interval = "12"; #First we take the current date $sth = $dbh->prepare('SELECT CURRENT_DATE') or die("Couldn't prepar +e statement: " . $dbh->errstr); $sth->execute() or die("Couldn't execute statement: " . $sth->errst +r); $actual = $sth->fetchrow_array(); $sth->finish; #Now we add the date for the expiration $sth = $dbh->prepare('SELECT DATE_ADD("?", INTERVAL ? MONTH)') or d +ie("Couldn't prepare statement: " . $dbh->errstr); $sth->execute($actual,$interval) or die("Couldn't execute statement +: " . $sth->errstr); my $expiration = $sth->fetchrow_array(); $sth->finish; # $msg = $dbh->quote($msg); $sth = $dbh->prepare('INSERT INTO anuncios (usuario,titulo,mensaje, +categoria,estado,pais,imagen,image_align,expiracion,firma) VALUES(?,? +,?,?,?,?,?,?,?,?)') or die("Couldn't prepare statement: " . $dbh->err +str); $sth->execute($user,$title,$dbh->quote($msg),$cat,$state,$country,$ +img,'left',$expiration,$name) or die("Couldn't execute statement: " . + $sth->errstr); $sth->finish; $dbh->disconnect; exit(1);

I get this error:

DBD::mysqlPP::st execute failed: You have an error in your SQL syntax +near 'probl'''','Cancun','Mexico','none','left','2004-02-13','kidd',? +)' at line 1 at C:\WIN98\TEMP\DZPRLTMP.PL line 56.

But if a get the ? out of the $msg variable the script runs fine...

Im using the DBD::mysqlPP module...


Replies are listed 'Best First'.
Re^3: mySQL Query Problem
by adrianh (Chancellor) on Feb 14, 2003 at 08:51 UTC

    What version of DBD::mysqlPP are you using? There's a bug in versions earlier than 0.04 that might be causing your placeholder problem. See change log for details.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://234957]
and the fire pops...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (3)
As of 2017-04-27 04:52 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (500 votes). Check out past polls.