Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2014, 00:42   #1
UKRtortik
Форумчанин
 
Регистрация: 25.02.2014
Сообщений: 366
По умолчанию MySql error

Код:
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 'key,name) VALUES ('45455','45455')' at line 1
Код:
mysql_query("INSERT INTO prem (key,name) VALUES ('$key','$name')") or die("MySql error : ".mysql_error());
Из-за чего ошибка?
UKRtortik вне форума Ответить с цитированием
Старый 22.06.2014, 03:18   #2
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Код:
(`key`,`name`)
??
Kostia вне форума Ответить с цитированием
Старый 22.06.2014, 03:46   #3
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,770
По умолчанию

Слово key -- ключевое в SQL.
Vapaamies вне форума Ответить с цитированием
Старый 22.06.2014, 15:31   #4
AgentSmit
Пользователь
 
Аватар для AgentSmit
 
Регистрация: 17.02.2010
Сообщений: 50
По умолчанию

Чтобы не было подобных ошибок в тексте запроса используй {$var_name}. Например:
PHP код:
mysql_query("INSERT INTO prem (key,name) VALUES ('{$key}','{$name}')") or die("MySql error : ".mysql_error()); 
Подобная конструкция экранирует текст от переменных.
Encode the world
AgentSmit вне форума Ответить с цитированием
Старый 22.06.2014, 20:59   #5
ATL
Форумчанин
 
Аватар для ATL
 
Регистрация: 26.01.2007
Сообщений: 278
По умолчанию

key, name надо бы заменить на `key`, `name`
ATL вне форума Ответить с цитированием
Старый 22.06.2014, 22:57   #6
AgentSmit
Пользователь
 
Аватар для AgentSmit
 
Регистрация: 17.02.2010
Сообщений: 50
По умолчанию

PHP код:
"INSERT INTO prem (key,name) VALUES ('{$key}','{$name}')" 
идентичен
PHP код:
"INSERT INTO prem (key,name) VALUES ('".$key."','".$name."')" 
У меня PHP версии 5.2, т.к. установлен на большинстве Web-серверов, проглатывает спокойно первую конструкцию.
Encode the world
AgentSmit вне форума Ответить с цитированием
Старый 22.06.2014, 23:05   #7
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

AgentSmit, текст ошибки говорит совершенно о другом, не морочь голову.
Правильные ответы у ATL и Kostia – решением данной проблемы является экранирование названий таблиц и полей в запросах.
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Error при фильтрации таблицы MySQL abtat C++ Builder 0 28.03.2012 15:12
mysql error redirect Ghennadiy PHP 6 22.02.2011 20:42
MySQL error 1064 MasterofCDM БД в Delphi 4 23.02.2009 13:29
SQL Error: MySQL server has gone away [Smarik] БД в Delphi 1 14.02.2009 21:47
запрос в MySQL, Error Teksa БД в Delphi 4 12.10.2007 22:03