Страница: 1 |
Страница: 1 |
Вопрос: Помогите с поиском.
Добавлено: 14.12.06 16:30
Автор вопроса:
Djmun | ICQ: 4401990
Есть БД и с сайта производится поиск вот код
search=Request.QueryString("search")
if Request.QueryString("search") <> empty then
strSql = "SELECT * FROM main WHERE name='"& search &"'"
else
strSql = "SELECT * FROM main ORDER BY name"
end if
проблема в том что если в поле для поиска ввести значок одинарной кавычки то это вызывает ошибку (я думаю всем понятно по какой причине ошибка), так вот как этого избежать.
Спасибо.
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа: Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 14.12.06 17:07
Надо его эскейпить. Т.е. ' должно быть преобразовано в \'
Номер ответа: 2
Автор ответа: Djmun
ICQ: 4401990
Вопросов: 16
Ответов: 33
Профиль | | #2
Добавлено: 15.12.06 10:09
Sharp
Если можна небальшой пример как это делат?!
Номер ответа: 3
Автор ответа: Djmun
ICQ: 4401990
Вопросов: 16
Ответов: 33
Профиль | | #3
Добавлено: 19.12.06 10:40
Еще кто-то может подсказать???
Номер ответа: 4
Автор ответа: EROS
Вопросов: 58
Ответов: 4255
Профиль | | #4
Добавлено: 19.12.06 13:09
В качестве примера попробуй для поиска задать следующую строку, должно помочь.. ))
Номер ответа: 5
Автор ответа: HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 19.12.06 21:26
search = Replace$ (search, "'", "\'"
...
strSql = "SELECT * FROM main WHERE name='" & search & "'"
Это и есть то, что имел ввиду Sharp.
Номер ответа: 6
Автор ответа: Djmun
ICQ: 4401990
Вопросов: 16
Ответов: 33
Профиль | | #6
Добавлено: 20.12.06 10:18
Вот какя ошибка возникает..
Microsoft VBScript compilation (0x800A0408)
Invalid character
/Prog/userpage.asp, line 41, column 16
search = Replace$ (search, "'", "\'"
---------------^
Номер ответа: 7
Автор ответа: HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #7
Добавлено: 20.12.06 11:13
а тьфу, это ж .net там наверное Replace подругому как-то...
Номер ответа: 8
Автор ответа: Djmun
ICQ: 4401990
Вопросов: 16
Ответов: 33
Профиль | | #8
Добавлено: 20.12.06 11:58
HACKER
А как???
Номер ответа: 9
Автор ответа: Шпион
ICQ: 250543104
Вопросов: 13
Ответов: 118
Профиль | | #9
Добавлено: 20.12.06 12:49
поскольку форум ASP, а не ASP.NET, то действуют функции VBScript
обращаемся к документации:
Replace(expression, find, replacewith[, start[, count[, compare]]])
Номер ответа: 10
Автор ответа: Шпион
ICQ: 250543104
Вопросов: 13
Ответов: 118
Профиль | | #10
Добавлено: 20.12.06 12:50
значок доллара лишний, имхо
Номер ответа: 11
Автор ответа: Djmun
ICQ: 4401990
Вопросов: 16
Ответов: 33
Профиль | | #11
Добавлено: 20.12.06 13:57
Всьо работет!
ОГРОМНОЕ спасибо всем!