public function insert($table, $data = array()) {
$fieldnames = array_keys ( $data );
var_dump(implode ( ' ,', $fieldnames ));
$name = '( ' . implode ( ' ,', $fieldnames ) . ' )';
$value = '(:' . implode ( ', :', $fieldnames ) . ' )';
$query = "INSERT INTO $table";
$query .= $name . ' VALUES ' . $value;
var_dump($query);
$insert = $this->start->prepare ( $query );
return $insert->execute ( $data );
}
Вопрос: хорошо, у меня есть функция, которая помогает мне упростить оператор вставки (pdo), проблема в том, когда я вставляю поле, если имя "group" на нем
$a['group'] = $_POST['group'];
$a['tag'] = $_POST['tag'];
$a['information'] = $_POST['information'];
$status= $this->insert ( 'groups', $a);
сгенерирует ошибку MySQL вроде
PDOStatement :: Execute ()
[Pdostatement.execute]:
SQLSTATE [42000]: синтаксическая ошибка или
нарушение доступа: 1064 У вас есть
ошибка в вашем синтаксисе SQL; проверить
руководство, которое соответствует вашему MySQL
версия сервера для правильного синтаксиса
использовать рядом с группой, тегом, информацией)
ЦЕННОСТИ («группа», «атаг»,
'информация') '
это запрос
INSERT INTO groups( group ,tag ,information ) VALUES (:group, :tag, :information )
я предполагаю, что это должно быть
INSERT INTO groups( "group" ,"tag" ,"information" ) VALUES (:group, :tag, :information )
Я не уверен, с чего начать.
Спасибо, что заглянули в
Адам Рамадан