|
|
|
| Проблема: приходится сохранять в БД, в поле типа TEXT, крупный кусок HTML-кода, в котором есть и одинарные и двойные кавычки. Вот и задумался, как эту строку теперь обрамлять при создании запроса. Проблема в том, что нужно не заменять эти кавычки, ибо потом потребуется необходимость их восстанавливать..
Обратные кавычки для обрамления строки подойдут в моем случае? Где-то вроде слышал, что они имеют какую-то особую функцию в MySQL.. | |
|
|
|
|
|
|
|
для: ДацкыйКот
(15.05.2008 в 22:26)
| | MySQL совершенно спокойно работает с любыми символами в тексте.
Не надо ничего заменять - не придется потом восстанавливать. | |
|
|
|
|
|
|
|
для: Trianon
(15.05.2008 в 22:31)
| | Попробовал обрамлять обратными кавычками, запрос получается такой:
INSERT INTO files SET idfiles =0, code = `224555`, docname = `Проект контракта //`, и т.д.
|
выдает такую ошибку:
Unknown column '224555' in 'field list'
| .
Получается, что имя в обратных кавычках MySQL воспринимает как имя столбца? | |
|
|
|
|
|
|
|
для: ДацкыйКот
(16.05.2008 в 21:06)
| | Да, в обратных косых кавычках mysql воспринимает имена объектов (баз, таблиц, столбцов)
Кавычки нужно использовать самые обыкновенные.
http://www.mysql.ru/docs/man/String_syntax.html | |
|
|
|
|
|
|
|
для: ДацкыйКот
(15.05.2008 в 22:26)
| | на сервере должен быть включен режим "волшебных кавычек" который бэкслэшет на "лету" все спец символы отправляемые в БД , так что в принципе Вам ничего не нужно заменять.
проверить включены ли "волшебных кавычек" можно при помощи функций get_magic_quotes_gpc() и get_magic_quotes_runtime().
если кавычки отключены используйте mysql_escape_string(), она прослешит спец символы
вот так можно проверить и подготовить для БД пришедшие данные из GET, POST и COOKIE
if(!get_magic_quotes_gpc())
{
$name = mysql_escape_string($name);
$pass = mysql_escape_string($pass);
$email = mysql_escape_string($email);
}
|
подробней можно прочесть здесь http://www.phpfaq.ru/slashes | |
|
|
|