Mysql Php Выход из одинарных кавычек с помощью real_escape_string - PullRequest
0 голосов
/ 06 февраля 2011

У меня проблемы с выяснением того, как очистить мои строки для безопасных запросов, сохраняя при этом смысл строки. Приведена таблица, в которой некоторые значения имеют одинарные кавычки или другие экранируемые символы. Как использовать real_escape_string и по-прежнему выбирать эти значения?

my_table

Col1     Col2
-----------------
1        value's1
2        value's2

value's1 исходит из URL, поэтому я должен очистить его с помощью mysqli :: real_escape_string Это означает, что мой запрос выглядит так

SELECT Col1,Col2 FROM my_table WHERE Col2 = 'value\'s1'

И, конечно, из-за этого я не получаю никаких результатов.

Каковы различные стратегии решения этой проблемы?

Примечание: Только что phpinfo () сделал, и magic_quotes_gpc отключен. Нужно ли мне очищать это значение? Я не вижу, как кто-то может сделать SQL-инъекцию, когда php допускает только один запрос за раз? Я просто слишком осторожен?

1 Ответ

1 голос
/ 06 февраля 2011
if(get_magic_quotes_gpc())
{
    $string = stripslashes($string);
            $string = mysqli_real_escape_string($string);
}
else
{
    $string = mysqli_real_escape_string($string);
}

Возможно, вы захотите сделать из этого функцию

...