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

Форум PHP

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

 

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

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

тема: кавычки в базу
 
 автор: TavRoX   (17.11.2012 в 05:00)   письмо автору
 
 

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

<?
$result 
mysql_query ("INSERT INTO `page` (`title`,`descr`,`keywords`,`text`,`url`) VALUES ('$title','$descr','$keywords','$text','$url')");

когда происходит не добавление выбивает такую ошибку

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''\1\')' at line 1 

а в это поле title я вношу в этом случае такое
 "1"

  Ответить  
 
 автор: cheops   (17.11.2012 в 07:55)   письмо автору
 
   для: TavRoX   (17.11.2012 в 05:00)
 

Кавычки следует экранировать при помощи функции mysql_escape_string()

  Ответить  
 
 автор: ols   (17.11.2012 в 12:45)   письмо автору
 
   для: cheops   (17.11.2012 в 07:55)
 

лучше уже mysql_real_escape_string, так как в php 5.3 mysql_escape_string не поддерживается более.

  Ответить  
 
 автор: cheops   (17.11.2012 в 13:35)   письмо автору
 
   для: ols   (17.11.2012 в 12:45)
 

У mysql_real_escape_string есть особенность - она не работает, если нет подключения MySQL (поэтому можно и к addslashes прибегать), лучше вообще ориентироваться на библиотеки, оперирующие подготовленными запросами, вроде PDO.

  Ответить  
 
 автор: Sfinks   (17.11.2012 в 14:29)   письмо автору
 
   для: cheops   (17.11.2012 в 13:35)
 

А если подключения все-равно нет, то зачем escape/real_escape/addslashes ?

  Ответить  
 
 автор: cheops   (19.11.2012 в 21:48)   письмо автору
 
   для: Sfinks   (17.11.2012 в 14:29)
 

Чтобы соединение было покороче... пока вы удерживаете соединение с базой данных, им не может воспользоваться другой запрос... поэтому соединение создается по-новой или если их больше нельзя создать, запрос ждет в очереди. Поэтому иногда лучше сначала все обработать, а потом устанавливать соединение с базой данных.

  Ответить  
 
 автор: Slo_Nik   (17.11.2012 в 11:45)   письмо автору
 
   для: TavRoX   (17.11.2012 в 05:00)
 

прочтите эту статю

  Ответить  
Rambler's Top100
вверх

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