2013-12-12 3 views
1

Я получаю эту ошибку, пытаясь вставить данные в таблицу.PDO подготовленный оператор Ошибка 1064

Array ([0] => 42000 [1] => 1064 [2] => У вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса, имя пользователя , пароль , Firstname ,, Lastname электронной , 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 в Implode вы снова добавление в запросе вставки ('.$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

Смежные вопросы