2013-04-18 3 views
-1

Мой код.Моя собственная синтаксическая ошибка SQL

$newModel = "INSERT INTO models (id," . 
    " firstname," . 
    " lastname," . 
    " email," . 
    " password," . 
    " group," . 
    " phone," . 
    " timeofday," . 
    " dayofweek," . 
    " address," . 
    " city," . 
    " state," . 
    " zip," . 
    " gender," . 
    " hair," . 
    " eye," . 
    " birthday," . 
    " birthmonth," . 
    " birthyear," . 
    " bustshirt," . 
    " cup," . 
    " waist," . 
    " hips," . 
    " waist," . 
    " hips," . 
    " weight," . 
    " inches," . 
    " dressjacket," . 
    " workxp," . 
    " twitter," . 
    " facebook," . 
    " joindate," . 
    " instagram," . 
    " imdb," . 
    " parentid," . 
    " error) VALUES (". 
    PrepSQL($modelid) . ", " . 
    PrepSQL($firstname) . ", " . 
    PrepSQL($lastname) . ", " . 
    PrepSQL($email) . ", " . 
    PrepSQL($password) . ", " . 
    PrepSQL($group) . ", " . 
    PrepSQL($phone) . ", " . 
    PrepSQL($timeofday) . ", " . 
    PrepSQL($dayofweek) . ", " . 
    PrepSQL($address) . ", " . 
    PrepSQL($city) . ", " . 
    PrepSQL($state) . ", " . 
    PrepSQL($zip) . ", " . 
    PrepSQL($gender) . ", " . 
    PrepSQL($hair) . ", " . 
    PrepSQL($eyes) . ", " . 
    PrepSQL($bday) . ", " . 
    PrepSQL($bmonth) . ", " . 
    PrepSQL($byear) . ", " . 
    PrepSQL($bust) . ", " . 
    PrepSQL($cup) . ", " . 
    PrepSQL($waist) . ", " . 
    PrepSQL($hips) . ", " . 
    PrepSQL($weight) . ", " . 
    PrepSQL($height) . ", " . 
    PrepSQL($dressjacket) . ", " . 
    PrepSQL($workxp) . ", " . 
    PrepSQL($twitter) . ", " . 
    PrepSQL($facebook) . ", " . 
    PrepSQL($joindate) . ", " . 
    PrepSQL($instagram) . ", " . 
    PrepSQL($imdb) . ", " . 
    PrepSQL($parentid) . ", " . 
    PrepSQL($error) . ")"; 

mysql_query($newModel) or die(mysql_error()); 

Сво Стрельба из ошибки:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group, phone, timeofday, dayofweek, address, city, state, zip, gender, hair, eye' at line 1

+9

Этот код страшно! :) – Patashu

+0

просто echo $ newModel перед запросом и распечатайте здесь, Y r u concating simple string – mukund

+0

Помните, что mysql_ * 'устарел. – ravi404

ответ

4

GROUP является зарезервированным ключевым словом и случается быть именем вашей колонки. Чтобы избежать синтаксической ошибки, вам нужно избегать ее с помощью обратного вызова. например,

`group` 

Если у вас есть привилегия, чтобы изменить таблицу, изменить имя столбца, которое не является зарезервированным ключевым словом, чтобы избежать проблемы возникновения снова.


Как Замечание, запрос уязвим с SQL Injection, если значение (s) переменными пришло извне. Пожалуйста, ознакомьтесь с приведенной ниже статьей, чтобы узнать, как ее предотвратить. Используя PreparedStatements, вы можете избавиться от использования одинарных кавычек вокруг значений.

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