mysqli::real_escape_string

mysqli::escape_string

mysqli_real_escape_string

(PHP 5, PHP 7, PHP 8)

mysqli::real_escape_string -- mysqli::escape_string -- mysqli_real_escape_string Экранирует специальные символы в строке для использования в SQL-выражении, используя текущий набор символов соединения

Описание

Объектно-ориентированный стиль

publicmysqli::real_escape_string(string$string): string

Процедурный стиль

mysqli_real_escape_string(mysqli$mysql, string$string): string

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

Предостережение

Безопасность: набор символов по умолчанию

Набор символов должен быть задан либо на стороне сервера, либо с помощью API-функции mysqli_set_charset(). В противном случае mysqli_real_escape_string() работать не будет. За дополнительной информацией обращайтесь к документации наборы символов.

Список параметров

mysql

Только для процедурного стиля: объект mysqli, который вернула функция mysqli_connect() или функция mysqli_init().

string

Строка, которую требуется экранировать.

Экранируемые символы NUL (ASCII 0), \n, \r, \, ', " и CTRL+Z.

Возвращаемые значения

Возвращает экранированную строку.

Примеры

Пример #1 Пример использования mysqli::real_escape_string()

Объектно-ориентированный стиль

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

$city = "'s-Hertogenbosch";


$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
$mysqli->real_escape_string($city));
$result = $mysqli->query($query);
printf("Возвращённые строки: %d.\n", $result->num_rows);


$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'", $city);
$result = $mysqli->query($query);

Процедурный стиль

<?php

mysqli_report
(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = mysqli_connect("localhost", "my_user", "my_password", "world");

$city = "'s-Hertogenbosch";


$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'",
mysqli_real_escape_string($mysqli, $city));
$result = mysqli_query($mysqli, $query);
printf("Возвращённые строки: %d.\n", mysqli_num_rows($result));


$query = sprintf("SELECT CountryCode FROM City WHERE name='%s'", $city);
$result = mysqli_query($mysqli, $query);

Вывод приведённых примеров будет похож на:

Возвращённые строки: 1. Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's-Hertogenbosch'' at line 1 in...

Смотрите также

To Top