Ok...
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\@hotmail.com";
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...
Thanks
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.