Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version
 
 автор: alexwx   (07.08.2006 в 14:21)   письмо автору
 
 

Здравствуйте! Очень нужна Ваша помощь. Сталкиваюсь с этой ошибкой уже около года, но
раньше она то появлялась то исчезала, да и с MySql серьезно не работал, а сейчас очень нужно,
а из-за этой ошибки работа вообще никак не идет. Суть такая: не получается осуществить
выборку по текстовым и varchar полям.

Вот моя база данных:


CREATE TABLE 'my_pricelist' (
'id_service' INT NOT NULL AUTO_INCREMENT ,
'name_service' VARCHAR( 60 ) NOT NULL ,
'title' TEXT NOT NULL ,
'description' TEXT NOT NULL ,
'price' VARCHAR( 60 ) NOT NULL ,
'image' VARCHAR( 60 ) NOT NULL ,
'group' VARCHAR( 60 ) NOT NULL ,
'type' ENUM( 'web', 'engineering', 'program' ) NOT NULL ,
'visibility' ENUM( 'visible', 'hidden' ) NOT NULL ,
'position' INT NOT NULL ,
PRIMARY KEY ( 'id_service' ) 
) TYPE = MYISAM ;


Пытаюсь выполнить запрос:


$result = mysql_query("SELECT * FROM my_pricelist WHERE type=$type AND position=$pos AND
group=$group;") or die("SQL error: ".__FILE__.":".__LINE__.": $sql"." ".mysql_error());


А в результате получаю ошибку:

SQL error: z:\home\localhost\www\mysite\admin\catalog\catalog.php:24: 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=p1' at line 1

Самое странное, что все скрипты написанные не мной работают нормально, хотя используют
тот же кофигурационный файл соединения с db, что и мои.

   
 
 автор: ARIRAN   (07.08.2006 в 14:24)   письмо автору
 
   для: alexwx   (07.08.2006 в 14:21)
 

WHERE type=$type
а кавычки тут есть в оригинале или потерлись форумом?
WHERE type='$type'

   
 
 автор: alexwx   (07.08.2006 в 14:34)   письмо автору
 
   для: ARIRAN   (07.08.2006 в 14:24)
 

Всё есть (да и без кавычек должно работать), но не работает ни с ними, ни без них . Если убрать
AND group=$group, то всё работает. А мне выборку по этому полю нужно.

   
 
 автор: alexwx   (07.08.2006 в 22:18)   письмо автору
 
   для: alexwx   (07.08.2006 в 14:34)
 

В общем я исправил ошибку так же, как и год назад (хотя версия MySql тогда была третья, а
сейчас я работаю с четвертой). Я просто переименовал поле (с которым были проблемы) с group
на m_group (типа my_group), и всё заработало. Я пришел к выводу, что слово group (да и
некоторые другие, например set) нельзя использовать в данном контексте (т е так, как я
использовал), похоже они под что-то зарезервированы. Напишите, если кто-нибдь что-нибудь знает об этом.

   
 
 автор: cyberface   (07.08.2006 в 22:56)   письмо автору
 
   для: alexwx   (07.08.2006 в 22:18)
 

просто group - это зарезервированое слово, так как есть такая конструкция - GROUP BY, естественно, мускуль думает, что вы хотите сгруппировать данные, дабы этого не происходило нужно сделать во так:

SELECT * FROM 'my_pricelist' WHERE 'type'='$type' AND 'position'='$pos' AND
'group'='$group'

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования