SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 25.06.2010 13:49:30

kuzroman
Завсегдатай
Зарегистрирован: 28.04.2010
Сообщений: 37

запрос на выборку (если в базе встречается ")

Есть такой запрос
SELECT * FROM obiekt WHERE firma = '$vibor_firm'

Поле firma(тип TEXT) содержит названия фирм, причем если фирма указана без кавычек "" например : Мосстрой
то выборка происходит нормально, а если там "Мосстрой" то не выводит ничего.

Подскажите решение на mysql или в php ?

Отредактированно kuzroman (25.06.2010 13:50:15)

Неактивен

 

#2 25.06.2010 14:00:33

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: запрос на выборку (если в базе встречается ")

WHERE firma = 'Мосстрой' OR firma = '\"Мосстрой\"'.

Ну и лучше таки заменить на VARCHAR().

Неактивен

 

#3 25.06.2010 14:07:02

kuzroman
Завсегдатай
Зарегистрирован: 28.04.2010
Сообщений: 37

Re: запрос на выборку (если в базе встречается ")

paulus написал:

WHERE firma = 'Мосстрой' OR firma = '\"Мосстрой\"'.

Ну и лучше таки заменить на VARCHAR().

Так что то не пойму. У меня стоит переменная $vibor_firm
а не конкретная фирма. запись типа WHERE firma = '$vibor_firm' OR firma = '\$vibor_firm\' не пройдет, т.к.
после обработки  получается  \"Мосстрой"\ что не подходит.

Неактивен

 

#4 25.06.2010 14:28:05

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: запрос на выборку (если в базе встречается ")

Ну, Вы попробуйте, все-таки? smile

Неактивен

 

#5 25.06.2010 14:51:47

kuzroman
Завсегдатай
Зарегистрирован: 28.04.2010
Сообщений: 37

Re: запрос на выборку (если в базе встречается ")

Не братишка не работает.

Неактивен

 

#6 25.06.2010 15:00:00

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: запрос на выборку (если в базе встречается ")

Код:

[celestia] root test > select * from f;
+--------+
| f      |
+--------+
| blah   |
| "blah" |
| "foo"  |
| foo    |
| bar    |
+--------+
5 rows in set (0.00 sec)

[celestia] root test > select * from f where f = '\"foo\"' or f = 'foo';
+-------+
| f     |
+-------+
| "foo" |
| foo   |
+-------+
2 rows in set (0.00 sec)

Неактивен

 

#7 25.06.2010 15:13:07

kuzroman
Завсегдатай
Зарегистрирован: 28.04.2010
Сообщений: 37

Re: запрос на выборку (если в базе встречается ")

Ладно Спасибо.
подышал свежим воздухом и дошло)) Сделал так

    if (isset($_POST['vibor_firm']) ) {
     $firm=$_POST['vibor_firm']; 
    
     $vibor_firm = htmlspecialchars($firm);
   
    $result3 = mysql_query("SELECT * FROM obiekt
    WHERE cat_men2='$cat_men2' && vipolnen='' && firma = '$vibor_firm' ",$db);
    $myrow3 = mysql_fetch_array($result3);


В общем    $vibor_firm = htmlspecialchars($firm);  вот это я и искал)))
Ну как говориться клин клином вышибают))

Неактивен

 

#8 25.06.2010 15:18:55

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: запрос на выборку (если в базе встречается ")

Таки addslashes().

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson