Почему я не могу вставить в базу данных MySQL, используя PHP? - PullRequest
0 голосов
/ 10 сентября 2011

это мой код:

 $query = "INSERT INTO accounts (name, mail, group, year, active, password) VALUES  ('$name', '$email', '$group', '$year', '1', '$pass')";          
 $result = mysql_query($query) or DIE(mysql_error());

это моя БД

Field -  Type 
id       int(11) (auto increment)
name     varchar(30)
mail     varchar(30)
group    varchar(4)
year     varchar(3)
active   tinyint(1)
password varchar(36)

и я получаю эту ошибку:

У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'group, year, active, password) VALUES (' Smith S. Ana Joy ',' ana 'в строке 1

пример или переменные, которые я добавляю:

$name = Smith
$email = ana.smith
$group = A1
$year = I
$active = 1
$pass = a

Ответы [ 5 ]

3 голосов
/ 10 сентября 2011

GROUP - это зарезервированное слово в mySQL.

Оберните это в кавычки:

`group`

или используйте другое имя столбца.

Также убедитесь, что ваш код защищен от SQL-инъекции (т.е. каждая переменная очищается перед вставкой в ​​код).

1 голос
/ 10 сентября 2011

Group - это зарезервированное слово в MySQL, и поэтому вы должны указать его.Вы можете прочитать больше об этом здесь: http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

1 голос
/ 10 сентября 2011

group - это MYSQL-команда, и ее нельзя использовать в качестве значения. Уйди с поля вот так:

"INSERT INTO account (имя, почта, \" группа \ ", год, активный, пароль) VALUES ('$ name', '$ email', '$ group', '$ year', '1', '$ пас') ";

1 голос
/ 10 сентября 2011

GROUP - зарезервированное слово. Вы должны указать это имя столбца:

... mail, `group`, ...
0 голосов
/ 10 сентября 2011

group - зарезервированное ключевое слово, вы должны заключить его в обратные кавычки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...