I am using PHP in windows apache environment for connecting sql server using pdo. My code was running perfectly with out any errors. recent update on windows machine making pdo insert query not working. To confirm this error is not because of recent changes, I have reverted to older versions from SVN. Still same error exists.
error is
INSERT INTO contactus(contactref, title, first_name, last_name, email) VALUES('35008679022', 'Mr', 'Robin', 'Michael', 'robin@robin.com')
The above query returns an error
Array ( [0] => HY000 [1] => 10007 [2] => Incorrect syntax near '35008679022[10007] (severity 5) [INSERT INTO contactus(contactref, title, first_name, last_name, email) VALUES('Mr] [3] => -1 [4] => 5 )
But, when i copy the query and run it in SQL server management studio, It runs without any error.
Can anyone please help me to find out this issue?
function newInsertQuery( $tbl, $flds, $prepVals, $valsArr ) {
try {
$dbcon = $this->mysqlConnect();
$q = "INSERT INTO $tbl($flds) VALUES($prepVals)";
$prep = $dbcon->prepare($q);
if( $prep->execute($valsArr) ) {
$rq = 1;
$q = "SELECT SCOPE_IDENTITY() as ins_id";
$rq = $dbcon->query($q);
$optArr = $rq->fetchAll(PDO::FETCH_ASSOC);
$_SESSION['last_id'] = $optArr[0]['ins_id'];
}
else {
$rq = 0;
}
$_SESSION['q_error'] = $dbcon->errorInfo();
}
catch( Exception $ex ) {
$rq = 0;
echo $ex->getMessage();
}
//clear connection
$dbcon = null;
return $rq;
}
Actual function that's causing an error
$flds = 'contactref, title, first_name, last_name, email';
$prepVals = '?, ?, ?, ?, ?';
$valsArr = array('35008679022', 'Mr', 'Robin', 'Michael', 'robin@robin.com');
newInsertQuery('contactus', $flds, $prepVals, $valsArr);