2016-05-15 9 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 PDO構文の欠陥を指摘するIDEを見つけることを強くお勧めします。決して幸せにならないでしょう。 – Ohgodwhy

+0

提案していただきありがとうございます。私は初心者ですし、崇高な文章を使っていますが、あまり役に立ちません。どんな勧告? – Kumar

関連する問題