2010-05-26 2 views
0

Я получаю эту ошибку:INSERT INTO ошибок MySQL/PHP

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 'order (total, addy, cc) VALUES ('798' , '123 sadf' , '12124123')' at line 1

$total = addslashes(($_SESSION['total'])); 

$addy = addslashes(($_POST['addy'])); 

$cc = addslashes(($_POST['cc'])); 

echo "$total"; 

echo "$addy"; 

echo "$cc"; 

mysql_query("INSERT INTO order (total, addy, cc) VALUES ('$total' , '$addy' , '$cc')") or die(mysql_error()); 

Как я могу исправить эту проблему?

+0

Не использовать любое ключевое слово или имя в качестве резервного поля или имени таблицы. Переименуйте заказ. – Karthik

ответ

7

В SQL order зарезервированное слово. Вместо того, чтобы использовать:

INSERT INTO `order` 
3

Причина, почему это не удается, потому что «порядок» является ключевым словом в SQL.

Чтобы избежать подобных проблем, вам нужно поставить обратные ссылки вокруг имен таблиц.

2

Попробуйте положить тики вокруг того

`order` 
-3

Вы забыли «$ соединения»

mysql_query("INSERT INTO order (total, addy, cc) VALUES ('$total' , '$addy' , '$cc')",$connection) or die(mysql_error()); 
+0

«$ connection» - это то, что вызывает эту проблему ... – Vimard

+0

извините, у вас нет подсказки –

+0

Col. Shrapnel верен. Тот факт, что он получает ошибку MySQL, показывает, что соединение уже установлено. Функция mysql_query() использует уже установленное соединение по умолчанию, если оно не указано. Соединение не является проблемой. Прочтите руководство -> http://us2.php.net/manual/en/function.mysql-query.php – Joseph