我使用下面的代码段,但收到以下错误。不确定,发生了什么事。我试图打印所有内容,它显示正常。我试着寻找缺失的牙套,没有运气。我错过了什么吗?
错误:SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;查看与MySQL服务器版本对应的手册,以便在第3行“'','','','',NOW())附近使用正确的语法
$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);
答案 0 :(得分:1)
我假设您不打算将ddate
和docsreq
组合在一起:
:ddate :docsreq
你应该在它们之间添加一个逗号。
:ddate, :docsreq