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

Форум MySQL

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

 

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

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

тема: Обработка УЖЕ внесенных данных
 
 автор: Shorr Kan   (19.05.2006 в 18:35)   письмо автору
 
 


<?
$k
=mysql_escape_string("tralala'fdfdfdf ' v df \df");
mysql_query("INSERT INTO words (word) VALUES ('$k');");

$s=mysql_fetch_array(mysql_query("SELECT word FROM words WHERE word='$k';"));

mysql_query("INSERT INTO words2 (word) VALUES ('$s[word]');");// вот здесь - правильно? Или $s['word'] тоже надо обрабатывать mysql_escape_string ?
?>


И второй вопрос... не повредит ли двойной mysql_escape_string ? Я боюсь, как бы не вышло \' - после первого, а \\' - после второго...

   
 
 автор: Trianon   (19.05.2006 в 20:02)   письмо автору
 
   для: Shorr Kan   (19.05.2006 в 18:35)
 

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

Естественно, при формировании параметра второго запроса экранирование придется выполнить и для него. Опять же в результате выполнения в таблице words2 окажется текст. Без лишних слэшей.

Правило очень простое. mysql_escape_string нужно вызывать всякий раз, когда Вы собираетесь после этого обрамить строку апострофами и применить полученное в качестве параметра SQL-запроса. На каждую пару апострофов - один вызов mysql_escape_string.

   
 
 автор: cheops   (19.05.2006 в 22:45)   письмо автору
 
   для: Shorr Kan   (19.05.2006 в 18:35)
 

Да вместо
<?php
mysql_query
("INSERT INTO words2 (word) VALUES ('$s[word]');")
?>

здесь следует писать
<?php
mysql_query
("INSERT INTO words2 (word) VALUES ('"mysql_escape_string($s['word'])."');")
?>

   
Rambler's Top100
вверх

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