Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Базы данных MySQL

  Все выпуски  

RusFAQ.ru: Базы данных SQL


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

Народное голосование ПРЕМИИ РУНЕТА-2007!
Голосуем за RusFAQ.ru >>

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Базы данных SQL

Выпуск № 299
от 11.11.2007, 06:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 454, Экспертов: 63
В номере:Вопросов: 1, Ответов: 3


Вопрос № 108206: Здравствуйте уважаемые! MySQL 4.1.13. Столкнулся с такой интересной проблемой. Есть текстовый файл с инетовскими URL'ами. В этох URL'ах присутствуют строки, в которых содержаться как символ "двойная кавчка" ("), так и симво...

Вопрос № 108.206
Здравствуйте уважаемые!
MySQL 4.1.13.
Столкнулся с такой интересной проблемой.
Есть текстовый файл с инетовскими URL'ами. В этох URL'ах присутствуют строки, в которых содержаться как символ "двойная кавчка" ("), так и символ "одинарная кавычка" ('). Нужно всю строку целиком занести в поле типа VARCHAR.
Проблема. Если я заключаю сроку для передачи её серверу в двойную кавычку, то когда в строке встречается двойная кавычка-символ, то сервер считает, что строка окончена, хотя это и не так и вываливает ошибку. Если заключаю в одинарные кавычки - та же ситуация, встречается одинарная кавычка-символ и опять вываливается ошибка.
Кто что может посоветовать по поводу этого? Желательно без поиска символа-кавычки в строке, т.к. это сильно замедляет перенос данных... :)
Отправлен: 06.11.2007, 05:39
Вопрос задал: sir henry (статус: Академик)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Евгений Неверов
Здравствуйте,

Для этих целей в MySQL есть внешняя функция escape_string, например в PHP она выглядит как mysql_real_escape_string('ваша строка с кавычками'), которая экранирует все кавычки и строку можно безопасно передавать в запросе.
Ответ отправил: Евгений Неверов (статус: Студент)
Ответ отправлен: 06.11.2007, 06:12
Оценка за ответ: 5
Комментарий оценки:
Большое спасибо.
Правда в мануале к mysql я эту функцию не нашёл, но ничего, воспользуюсь PHP. :)

Отвечает: Некто
Здравствуйте, sir henry!
1) В URL кавычек быть не должно
2) Надо экранировать служебные строчки перед вставкой в базу обратным слешом
Ответ отправил: Некто (статус: 3-ий класс)
Ответ отправлен: 06.11.2007, 10:22

Отвечает: Кэр Лаэда
Здравствуйте, sir henry!

кроме того попробуйте добавить перед кавычками которые внутри строки символ

backslash ""

подробнее о методе подсказанном экспертом Евгений Неверов и о backslash в приложениии

Приложение:

---------
Я знаю что ничего не знаю, но я знаю больше, чем тот кто думает что знает все

Ответ отправил: Кэр Лаэда (статус: Практикант)
Ответ отправлен: 06.11.2007, 16:57
Оценка за ответ: 4
Комментарий оценки:
За ссылку спасибо, а вот читать посимвольно все строки на предмет наличия кавычек - увольте... У меня не сорокасемипроцессорный сервер. :)


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.62.0 от 08.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное