Как использовать функцию mysql_real_escape_string в PHP

Итак, в этой программе, которую я пишу, я фактически получаю SQL-запрос от пользователя с помощью формы. Затем я выполняю этот запрос в своей базе данных.

Я знаю, что нельзя «доверять» вводимым пользователем данным, поэтому я хочу провести дезинфекцию ввода. Я пытаюсь использовать mysql_real_escape_string , но мне не удалось заставить его работать.

Вот что я пытаюсь, учитывая ввод: select * from Actor;

//"query" is the input string: 
$clean_string = mysql_real_escape_string($query, $db_connection); 
$rs = mysql_query($clean_string, $db_connection); 
if (!$rs) 
{ 
    echo "Invalid input!"; 
} 

Это ВСЕГДА дает мне ошибку

«Неверный ввод!»

.

Когда я беру часть clean_string и просто запускаю mysql_query по запросу,

"недействителен input "

сообщение не выводится. Скорее, когда я делаю это:

$rs = mysql_query($query, $db_connection); 
if (!$rs) 
{ 
   echo "Invalid input!"; 
} 

Оно НЕ выводит

" недопустимый ввод ".

Однако мне нужно использовать функцию mysql_real_escape_string . Что я делаю не так?

Обновление:

Учитывая select * from Actor; в качестве входных данных, я обнаружил следующее.

Используя операторы эха, я обнаружил, что перед дезинфекцией строка содержит значение: выберите * от актера; что правильно. Однако после дезинфекции он держит неверный значение выберите * \ r \ nfrom Actor; , отсюда и сообщение об ошибке. Почему mysql_real_escape_string делает это?

5
задан muzaffar 9 October 2015 в 07:32
поделиться