Вопрос № 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 Комментарий оценки: За ссылку спасибо, а вот читать посимвольно все строки на предмет наличия кавычек - увольте... У меня не сорокасемипроцессорный сервер. :)