Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как добавить данные, содержащие кавычки? 
V
    Опции темы
kolombo1
Дата 6.8.2009, 13:34 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 15.7.2009

Репутация: нет
Всего: нет



Есть код вида:
Код

mysql_query("INSERT INTO table_name (col1, col2) VALUES(`" . $col1_value . "`, `" . $col2_values . "`)");

В $col1_value и $col2_value хранится значение, которое может содержать и кавычки (' и "), и апострофы (`). Например, если $col1_value = "mothers`s", $col2_value = "father`s", то результирующий запрос будет выглядеть так:
Код

INSERT INTO table_name (col1, col2) VALUES (`mothers`s`, `fathers`s`)

Естественно, будет выдаваться ошибка. Что сделать, чтобы нормально вставить в базу данных запись с кавычками и апострофами?
PM MAIL   Вверх
MoLeX
Дата 6.8.2009, 14:24 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 7
Всего: 140



addcslashes()
mysql_escape_string()

Добавлено через 33 секунды
Код

mysql_query("INSERT INTO table_name (col1, col2) VALUES(`" . mysql_escape_string($col1_value) . "`, `" . mysql_escape_string($col2_values) . "`)");



--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
Ипатьев
Дата 6.8.2009, 14:55 (ссылка) |   (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



kolombo1, во-первых, твой код не будет работать, даже если в данных не будет кавычек. База данных выдаст ошибку, поскольку значения полей у тебя обрамлены в обратную кавычку, а это символ, который служит в совсем для других целей. Обрамлять данные можно только в одинарную (') или двойную (") кавычки.

Во-вторых, вставляемые строковые данные следует обрабатывать не только в том случае, если в них есть кавычки и апострофы. Синтаксис требует обрабатывать и многие другие символы.

В-третьих, для обработки служит функция mysql_real_escape_string()
PM MAIL   Вверх
nerezus
Дата 11.8.2009, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: нет
Всего: 43



В четвертых, нет смысла пользоваться mysql_*, уже давно везде доступны mysqli и pdo.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0697 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.