Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > [MySQL]5.0.45->4.4.0: Ошибка переноса


Автор: supervladislav 4.6.2008, 12:39
Я  написал поиск на сайте )))сам я использую mysql версии  5.0.45 ,всё шикарно работает ,у провайдера  3 с хвостом версия  , когда заливаю на сервер ,при попытке перейти на другую страницу поиска выводиться такое вот
 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 '\'1 комнатная квартира\' OR ttype3=\'2 комнатная квартира\' OR ttype3=\'3 комн' at line 1 
у меня на локалке всё работает идеально.
сам sql запрос  выглядит так вот 
AND ( ttype3=\'1 комнатная квартира\' OR ttype3=\'2 комнатная квартира\' OR ttype3=\'3 комнатная квартира\' )

Автор: skyboy 4.6.2008, 12:49
Цитата(supervladislav @  4.6.2008,  11:39 Найти цитируемый пост)
AND ( ttype3=\'1 комнатная квартира\' OR ttype3=\'2 комнатная квартира\' OR ttype3=\'3 комнатная квартира\' )

при попытке выполнить такой запрос любая СУБД выдаст ошибку. 
интересно, что за СУБД и какое отношение имеет SQL-запрос к PHP - это тайна?

Автор: supervladislav 4.6.2008, 13:05
извените  за дизенформацию.у провайдера вот такая версия теперь 4.1.15  mysql ,что косается запроса то он выглядит вот так 
AND ( ttype3='1 комнатная квартира' OR ttype3='2 комнатная квартира' )
а мускуль мне выдаёт все кавычки в экранированном виде ,но первая страница запроса отображается 


AND ( ttype3=\'1 комнатная квартира\' OR ttype3=\'2 комнатная квартира\' )

СУБД - mysql я же вроде сказал,php 4.4.0 но он какое отношение имеет к субд я несовсем понимаю

Автор: skyboy 4.6.2008, 13:55
Цитата(supervladislav @  4.6.2008,  12:05 Найти цитируемый пост)
mysql я же вроде сказал

да, я пропустил.
полный вариант запроса приведен будет?

Автор: supervladislav 4.6.2008, 14:57


вот такой вот у меня sql запрос ,этот SQL ЗАПРОС формирует непосредственно данные из базы 
Код


SELECT *  from spisok WHERE ttype='продаю' AND ttype2='Жилая недвижимость' AND ( ttype3='1 комнатная квартира' OR ttype3='2 комнатная квартира' ) 
AND stat='on' ORDER BY gorod_st  ASC  LIMIT 0,30;



обращаю внимание ,что в sql запрос  формеруется из переменных лишь только в том случае если эти  переменные существуют,в противном случае в переменную добовляется  пустое место.

Код

mysql_query("SELECT * FROM $T_SPISOK WHERE ttype='$ttype' $t_ttype2  AND region='$region' $t_ttype3  $t_foto $t_gorod $t_cena $t_obs_s $t_kuchna $t_itaz $t_gorod_st $t_gorod_metro $t_adser $t_itaz $t_elekt $t_gaz $t_voda $t_kanal $t_teplo $ohrana $parkovka $t_ttype4 $inter $t_tv AND stat='on' ORDER BY $soo $so;");

Автор: supervladislav 4.6.2008, 15:16
ps вот ещё одна закономерность AND ttype3=\'1 комнатная квартира\'   обратные слеши откудато беруться и подставляються в sql запрос , помойму в этом и дело так-как он говорит 
Код

MySQL server version for the right syntax to use near '\'1 комнатная квартира\' 

но блин откуда они беруться ещё раз напоминую что  на хосте стоит мускуль 4.1.15

Автор: skyboy 4.6.2008, 15:48
Цитата(supervladislav @  4.6.2008,  11:39 Найти цитируемый пост)
сам sql запрос  выглядит так вот AND ( ttype3=\'1 комнатная квартира\' OR ttype3=\'2 комнатная квартира\' OR ttype3=\'3 комнатная квартира\' )

ты же написал, что сам так формируешь запрос. с обратными слешами. если нет - то неужели про http://ua.php.net/magic_quotes за 2 года на форуме не слышал? проверяй опцию magic_quotes и отбрасывай слеши. это, кстати, уже к SQL отношение не имеет. 
Но пока в РНР переносить не буду. Вдруг, ещё что-нибудь выяснится неожиданно...

Автор: supervladislav 4.6.2008, 16:13
о всё огромное спасибо извените за некомпетентность 

Автор: skyboy 4.6.2008, 16:35
Цитата(supervladislav @  4.6.2008,  15:13 Найти цитируемый пост)
о всё огромное спасибо извените за некомпетентность 

что, проблема была в magic_quotes?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)