2016-05-15 147 views
-2

我正在使用下面的代码片段,但得到以下错误。不知道,发生了什么事。我试图打印一切,它显示很好。我试图寻找失踪的大括号,没有运气。我错过了什么吗?MYSQL错误 - SQLSTATE [42000]:语法错误或访问冲突

Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' ', ' ', '',' ', NOW())' at line 3

 

$name=$_POST['name'];//name 
$nationality = $_POST['nationality'];//nationality 
$vtype=$_POST['vtype'];//Visa type 
$vcenter=$_POST['vcenter'];//Embassy Consulate 
$vintdate=$_POST['vintdate'];//Visa Interview Date 
$status=$_POST['status'];//status 
$pstatus=$_POST['pstatus'];// Passport status 
$ddate=$_POST['ddate'];//consulate decision date 
$slipcolor = $_POST['slipcolor']; // Slip Color 
$docsreq = $_POST['docsreq'];//documents required by consulate 
$docsub = $_POST['docsub'];//documents submitted to consulate 
$dsub_date = $_POST['dsub_date'];//document submitted Date 
$extra_notes = $_POST['extra_notes'];// extra notes 

if(empty($ddate)) 
    $ddate=NULL; 

if(empty($dsub_date)) 
    $ddate=NULL; 

echo "name : ".$name; 
echo "nationality : ".$nationality; 
echo "vtype : ".$vtype; 
echo "vcenter : ".$vcenter; 
echo "vintdate : ".$vintdate; 
echo "status : ".$status; 
echo "pstatus : ".$pstatus; 
echo "ddate : ".$ddate; 
echo "slipcolor : ".$slipcolor; 
echo "docsreq : ".$docsreq; 
echo "docsub : ".$docsub; 
echo "dsub_date : ".$dsub_date; 
echo "extra_notes : ".$extra_notes; 


// $sql = "INSERT INTO 221gtracker (`userid`,`name`, `nationality`, `vtype`, `vcenter`, `vintdate`, `status`, `slipcolor`,`pstatus`,`ddate`,`docsreq`, `docsub`,`dsub_date`, `extra_notes`, `u_time`) 
//  VALUES 
//   (:userid, :name ,:nationality,:vtype, :vcenter, :vintdate, :status, :slipcolor, :pstatus,:ddate :docsreq, :docsub, :dsub_date,:extra_notes, NOW()) 
//     ON DUPLICATE KEY UPDATE 

//     status=:status_update, 
//     ddate=:ddate_update, 
//     docsreq=:docsreq_update, 
//     docsub=:docsub_update, 
//     dsub_date=:dsub_date_update, 
//     extra_notes=:extra_notes_update"; 

$sql = "INSERT INTO 221gtracker (`userid`,`name`, `nationality`, `vtype`, `vcenter`, `vintdate`, `status`, `slipcolor`,`pstatus`,`ddate`,`docsreq`, `docsub`,`dsub_date`, `extra_notes`, `u_time`) 
VALUES 
(:userid, :name ,:nationality,:vtype, :vcenter, :vintdate, :status, :slipcolor, :pstatus,:ddate :docsreq, :docsub, :dsub_date,:extra_notes, NOW())"; 

$s = $pdo->prepare($sql); 
$s->bindValue(':userid', $userid); 
$s->bindValue(':name', $name); 
$s->bindValue(':nationality', $nationality); 
$s->bindValue(':vtype', $vtype); 
$s->bindValue(':vcenter', $vcenter); 
$s->bindValue(':vintdate', $vintdate); 
$s->bindValue(':status', $status); 
$s->bindValue(':slipcolor', $slipcolor); 
$s->bindValue(':pstatus', $pstatus); 
$s->bindValue(':ddate', $ddate); 
$s->bindValue(':docsreq', $docsreq); 
$s->bindValue(':docsub', $docsub); 
$s->bindValue(':dsub_date', $dsub_date); 
$s->bindValue(':extra_notes', $extra_notes); 

回答

1

我猜想,这是不是你的意图,以便将ddatedocsreq在一起:

:ddate :docsreq 

你或许应该把那些以逗号分隔。

:ddate, :docsreq 
+0

谢谢,很棒!在您指出后,这听起来很愚蠢,我在其他文件中找遍了所有地方......谢谢! – Kumar

+1

@Kumar我会极力鼓励你找到一个IDE,指出你PDO语法中的缺陷,你永远不会更开心。 – Ohgodwhy

+0

感谢您的建议。我是一个新手,使用崇高的文字,它没有多大帮助。任何建议? – Kumar

相关问题