Поиск по сайту:

Человек прекрасно слышит голос разума, но он ему противен (Авессалом Подводный).

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

3 мин для чтения
FavoriteLoadingДобавить в избранное
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
19 октября 2021
Шестнадцатеричный цветовой код хранится в двоичном типе данных в MySQL
Mysqli_real_escape_string – это встроенная функция PHP, которая используется для управления нежелательными и опасными символами. В этой статье мы обсудим с помощью примера, что такое функция mysqli_real_escape_string и как ее можно использовать для защиты базы данных.

 

Что такое mysqli_real_escape_string

По определению mysqli_real_escape_string() позволяет специальным символам в строке перемещаться в базу данных с помощью запроса SQL, принимая во внимание текущий набор символов установленного соединения. Проще говоря, эта функция позволяет рассматривать специальные символы как часть строки и сохранять в базе данных как строку. Хакеры в основном используют специальные символы, такие как ?,’,^,%, and !, Для взлома базы данных или неправильного использования данных базы данных, поэтому для предотвращения этого действия используется эта функция, которая заставляет PHP считаться только строка. Общий синтаксис этой функции следующий:

mysqli_real_escape_string ( connection_variable, string_variable )

 

В общем синтаксисе connection_variable является результатом функции mysqli_connect(), хранящейся в любой переменной, а string_variable – это переменная, которая должна проходить через эту функцию для экранирования символов. Например, мы создаем код PHP, в котором сначала мы устанавливаем соединение PHP с базой данных с помощью функции mysqli_connect() с параметрами localhost; база данных находится на той же машине, имя пользователя: andrey, пароль: qwer1234 и имя базы данных: Organization. Затем мы применили условие if-else, чтобы проверить, успешно ли установлено соединение, с помощью функции mysqli_real_escape_string (connection_variable, string_variable). После обеспечения успешного установления соединения мы объявим переменную с именем Firstname и присвоим некоторую строку, которая включает некоторый специальный символ, а затем вставим ее в базу данных AndreyEx.

<? php
// Установление соединения с базами данных
$connection = mysqli_connect("localhost","andrey","Organization");

// проверка статуса подключения
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " .mysqli_connect_error();
exit();
}
// объявляем переменную
$firstname2 ="John'o Alexander";

// вставка в базу данных
$sql="INSERT INTO AndreyEx (Emp_name) VALUES ('$firstname2')");

// выполнение запросов mysql
$r = mysqli_query($connection, "INSERT into AndreyEx VALUES ('firstname2')"); 
if(!$r){
print("Произошла ошибка\n");
}
else{
print("Запись успешно вставлена\n");
}
//соединение закрыто
mysqli_close($connection);
?>

 

Результатом этого кода должна быть ошибка, потому что строка содержит специальный символ ‘ между ними. Чтобы проверить вывод, откройте терминал в Ubuntu и запустите этот файл PHP с помощью команды php с именем файла, в котором сохранен код.

$ php file1.php

 

Читать  Обновление данных в MySQL с помощью Perl

Произошла ошибка, чтобы исправить эту ошибку, мы воспользуемся mysqli_real_escape_string() и сохраним строку в базе данных.

<? php
// Установление соединения с базами данных
$connection = mysqli_connect("localhost","andrey","Organization");

// проверка статуса подключения
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " .mysqli_connect_error();
exit();
}

// объявляем переменную
$firstname2 ="John'o Alexander";

//pass from the mysqli_real_escape_string()
$firstname = mysqli_real_escape_string($connection,$firstname2);
//вставка в базу данных
$sql="INSERT INTO AndreyEx (Emp_name) VALUES ( '$firstname' )");

//выполнение запроса в MySQL
$r = mysqli_query($connection, "INSERT into AndreyEx VALUES ('firstname')");
if(!$r){
print("Произошла ошибка\n");
}
else{
print("Запись успешно вставлена\n");
}
//соединение закрыто
mysqli_close($connection);
?>

 

Снова запускаем файл в терминале.

$ php file1.php

 

Выход успешен. Чтобы проверить это, мы перейдем к MySQL и выполним следующую команду, чтобы проверить, вставлена ​​ли строка в базу данных или нет.

SELECT * FROM AndreyEx;

 

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Заполните форму и наш менеджер перезвонит Вам в самое ближайшее время!

badge
Обратный звонок 1
Отправить
galka

Спасибо! Ваша заявка принята

close
galka

Спасибо! Ваша заявка принята

close