Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Можно ли использовать обратные кавычки в запросах MySQL?
 
 автор: ДацкыйКот   (15.05.2008 в 22:26)   письмо автору
 
 

Проблема: приходится сохранять в БД, в поле типа TEXT, крупный кусок HTML-кода, в котором есть и одинарные и двойные кавычки. Вот и задумался, как эту строку теперь обрамлять при создании запроса. Проблема в том, что нужно не заменять эти кавычки, ибо потом потребуется необходимость их восстанавливать..

Обратные кавычки для обрамления строки подойдут в моем случае? Где-то вроде слышал, что они имеют какую-то особую функцию в MySQL..

   
 
 автор: Trianon   (15.05.2008 в 22:31)   письмо автору
 
   для: ДацкыйКот   (15.05.2008 в 22:26)
 

MySQL совершенно спокойно работает с любыми символами в тексте.
Не надо ничего заменять - не придется потом восстанавливать.

   
 
 автор: ДацкыйКот   (16.05.2008 в 21:06)   письмо автору
 
   для: Trianon   (15.05.2008 в 22:31)
 

Попробовал обрамлять обратными кавычками, запрос получается такой:
INSERT INTO files SET idfiles =0, code = `224555`, docname = `Проект контракта //`, и т.д. 

выдает такую ошибку:
Unknown column '224555' in 'field list'
.

Получается, что имя в обратных кавычках MySQL воспринимает как имя столбца?

   
 
 автор: Trianon   (16.05.2008 в 21:30)   письмо автору
 
   для: ДацкыйКот   (16.05.2008 в 21:06)
 

Да, в обратных косых кавычках mysql воспринимает имена объектов (баз, таблиц, столбцов)
Кавычки нужно использовать самые обыкновенные.
http://www.mysql.ru/docs/man/String_syntax.html

   
 
 автор: tomcat.nl   (16.05.2008 в 17:04)   письмо автору
 
   для: ДацкыйКот   (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

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования