2013-12-12 152 views
1

我得到此错误试图插入数据到我的表中。PDO准备语句错误1064

Array([0] => 42000 [1] => 1064 [2] =>您的SQL语法错误;查看对应于您的MySQL服务器版本的手册,用户名密码,名字,姓氏,电子邮件,, emailcode``)VALUES(“”在1号线)

我的代码看起来是这样的.. $ REG_DATA是包含$ _ POST数据的数组。

 $fields = '`' . implode('`, `',array_keys($reg_data)) . '`'; 
     $data = '\'' . implode('\', \'', $reg_data) . '\''; 


     $prep = $this->db->prepare('INSERT INTO `users` (`'.$fields.'`) VALUES (?)'); 

     $prep->bindParam(1, $data); 

     $prep->execute(); 

     print_r($prep->errorInfo()); 

回答

0

正如你可以看到它清楚地表明您emailcode``

使用双背抽动一旦你加入,你在插入查询 再次添加破灭backtiks错误('.$fields.'

变化

$fields = '`' . implode('`, `',array_keys($reg_data)) . '`'; 

$fields = implode('`, `',array_keys($reg_data)) ; 

或者只是使用它没有bacticks因为你已经添加使用破灭

$prep = $this->db->prepare('INSERT INTO `users` ('.$fields.') VALUES (?)'); 
+1

谢谢! :)) – macknes