我在尝试将数据插入表格时遇到此错误。
数组([0] => 42000 [1] => 1064 [2] =>您的SQL语法出错;请查看与您的MySQL服务器版本对应的手册,以获取正确的语法靠近'username ,
密码,
名字,
姓氏,
电子邮件,
emailcode``)值(第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 :(得分:0)
正如您所看到的错误,它清楚地显示了使用双反向电子邮件代码``
在implode中添加了backtiks后,您将在insert查询中再次添加
('.$fields.'
)
更改
$fields = '`' . implode('`, `',array_keys($reg_data)) . '`';
到
$fields = implode('`, `',array_keys($reg_data)) ;
或者只使用没有bacticks,因为你已经使用implode
添加了$prep = $this->db->prepare('INSERT INTO `users` ('.$fields.') VALUES (?)');