mysql_real_escape_string Экранирует специальные символы в строках для использования в выражениях SQL &mysql.alternative.note; mysqli_real_escape_string PDO::quote &reftitle.description; stringmysql_real_escape_string stringunescaped_string resourcelink_identifierNULL Экранирует специальные символы в unescaped_string, принимая во внимание кодировку соединения, таким образом, что результат можно безопасно использовать в SQL-запросе в функции mysql_query. Если вставляются бинарные данные, то к ним так же необходимо применять эту функцию. mysql_real_escape_string вызывает библиотечную функцию MySQL mysql_real_escape_string, которая добавляет обратную косую черту к следующим символам: \x00, \n, \r, \, ', " и \x1a. Эта функция должна всегда (за несколькими исключениями) использоваться для того, чтобы обезопасить данные, вставляемые в запрос перед отправкой его в MySQL. Безопасность: кодировка символов по умолчанию Кодировка символов должна устанавливаться как на сервере, так и с помощью функции mysql_set_charset, чтобы влиять на поведение mysql_real_escape_string. Подробнее описано в разделе кодировка символов. &reftitle.parameters; unescaped_string Экранируемая строка. &mysql.linkid.description; &reftitle.returnvalues; Возвращает строку, в которой экранированы все необходимые символы, или &false; в случае ошибки. &reftitle.errors; Запуск этой функции без существующего соединения с MySQL вызовет ошибку уровня E_WARNING. Данную функцию можно запускать только если есть соединение с MySQL. &reftitle.examples; Простой пример использования <function>mysql_real_escape_string</function> ]]> Пример использования <function>mysql_real_escape_string</function> без наличия соединения Этот пример показывает, что произойдёт, если вызвать эту функцию без наличия соединения с MySQL. ]]> &example.outputs.similar; Пример взлома с использованием SQL-инъекции ]]> Запрос, который будет отправлен в MySQL: Это позволит кому угодно войти в систему без пароля. &reftitle.notes; Функцию mysql_real_escape_string можно использовать только после того, как установлено соединение с MySQL. В противном случае возникнет ошибка уровня E_WARNING, а функция возвратит &false;. Если link_identifier не указан, используется последнее открытое соединение. Если magic_quotes_gpc включены, то сначала данные следует обработать функцией stripslashes. Если данную функцию применить к уже проэкранированным данным, то данные будут проэкранированы дважды. Если не пользоваться этой функцией, то запрос становится уязвимым для взлома с помощью SQL-инъекций. mysql_real_escape_string не экранирует символы % и _. Эти знаки являются масками групп символов в операторах MySQL LIKE, GRANT и REVOKE. &reftitle.seealso; mysql_set_charset mysql_client_encoding addslashes stripslashes Директива magic_quotes_gpc Директива magic_quotes_runtime