MySQL реальная escape-строка - PullRequest
2 голосов
/ 07 января 2011

Я пытался очистить входные данные для моего входа в PHP с использованием addlashes и mysql_real_escape_string.Использование addslashes работает, но mysql_real_escape_string не будет.

Вот пример того, что позволяет мне войти в систему правильно:

$user = addslashes($_POST['user']);<br/>
$password = addslashes($_POST['password']);

И это не будет:

$user = mysql_real_escape_string($_POST['user']);<br/>
$password = mysql_real_escape_string($_POST['password']);

Кроме того, некоторые другие мои поля содержат апострофы.При использовании addlashes ничего не возвращается, поскольку запись в БД не экранирована.Мне было интересно, может ли использование mysql_real_escape_string это исправить, но я не знаю как.

Ответы [ 3 ]

12 голосов
/ 07 января 2011

Всегда используйте mysql_real_escape_string вместо addlashes. Убедитесь, что вы подключены к базе данных до того, как запустит ее, иначе вы выдадите ошибку.

1 голос
/ 03 декабря 2012

Иногда пользователь может ввести ', этот символ, но sql, обрабатывать как другой способ и не разрешать вставлять в таблицы, мы не можем ограничить пользователя, чтобы мы использовали настоящую escape-строку MySQL, чтобы избежать ошибок такого рода

Примечание: если вы реализуете это, он должен быть подключен к базе данных, иначе он не будет работать

1 голос
/ 06 апреля 2011

mysql_real_escape_string () не экранирует% и _.Это символы подстановки в MySQL, если они объединены с LIKE, GRANT или REVOKE.

И самое главное, не доверяйте вводу пользователя.

Так что используйте htmlspecialchars и strip_tags для большей безопасности.

...