#!/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
|