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

Форум PHP

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

 

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

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

тема: Апострофы, кавычки
 
 автор: alexander95   (13.03.2011 в 18:54)   письмо автору
 
 

Как записывать апострофы и кавычки в бд (из кода php)?
Может быть, что то вроде " ?

  Ответить  
 
 автор: cheops   (13.03.2011 в 18:56)   письмо автору
 
   для: alexander95   (13.03.2011 в 18:54)
 

В базу данных информацию лучше записывать как есть с минимальными искажениями, а все преобразования осуществлять уже при выводе.

  Ответить  
 
 автор: alexander95   (13.03.2011 в 18:59)   письмо автору
 
   для: cheops   (13.03.2011 в 18:56)
 

Так ведь если я записываю, а в $text есть апостроф, то mysql_query выдает ошибку.

  Ответить  
 
 автор: alexander95   (13.03.2011 в 19:02)   письмо автору
 
   для: alexander95   (13.03.2011 в 18:59)
 

Полчается что то вроде
mysql_query('INSERT INTO ..... VALUES("it's not okay", "it's not okay too", "and it is okay...")');

  Ответить  
 
 автор: elenaki   (13.03.2011 в 19:08)   письмо автору
 
   для: alexander95   (13.03.2011 в 19:02)
 

addslashes()
stripslashes()

  Ответить  
 
 автор: cheops   (13.03.2011 в 19:13)   письмо автору
 
   для: alexander95   (13.03.2011 в 19:02)
 

Вы прямо в коде так запрос пишите? Если да, то нужно экранировать кавычки
mysql_query('INSERT INTO ..... VALUES("it\'s not okay", "it\'s not okay too", "and it is okay...")');
Если строка набирается из переменных, то применяйте функции, указанные elenaki.

  Ответить  
 
 автор: alexander95   (13.03.2011 в 19:17)   письмо автору
 
   для: cheops   (13.03.2011 в 19:13)
 

нет нет, конечно. Я просто примерно показал, на что он ругается.

  Ответить  
 
 автор: cheops   (13.03.2011 в 19:10)   письмо автору
 
   для: alexander95   (13.03.2011 в 18:59)
 

Спец-символы в текстовых переменных перед помещением в базу данных необходимо обязательно экранировать, иначе не только ошибка возникать будет, но злоумышленик сможет попытаться осуществить SQL-инъекцию.
<?php
  
if (!get_magic_quotes_gpc())
  {
    
$text mysql_escape_string($text);
  }
?>

  Ответить  
 
 автор: alexander95   (13.03.2011 в 21:28)   письмо автору
 
   для: cheops   (13.03.2011 в 19:10)
 

Никак..
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 'gujk\'\'\'')' at line 1

  Ответить  
 
 автор: alexander95   (13.03.2011 в 21:55)   письмо автору
 
   для: alexander95   (13.03.2011 в 21:28)
 

Все, заработало. Спасибо.

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

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