如何使用mysqli_real_escape_string函数?用法解析

2021年11月9日22:05:37 发表评论 908 次浏览

如何使用mysqli_real_escape_string函数?mysqli_real_escape_string 是 PHP 的内置函数,用于控制不需要的和危险的字符。在本文中,我们将借助mysqli_real_escape_string函数用法示例,并讨论什么是 mysqli_real_escape_string 函数以及如何使用它来保护数据库。

mysqli_real_escape_string函数教程:什么是 mysqli_real_escape_string

根据定义,mysqli_real_escape_string() 允许字符串中的特殊字符通过 SQL 查询转义到数据库,同时考虑到已建立连接的当前字符集。简单来说,这个函数允许将特殊字符视为字符串的一部分并作为字符串保存在数据库中。黑客大多使用?、'、^、%、!等特殊字符来入侵数据库或滥用数据库中的数据,所以为了防止这种行为,使用了这个函数,强制PHP被认为是仅字符串。该函数的一般语法如下:

mysqli_real_escape_string(connection_variable, string_variable)

如何使用mysqli_real_escape_string函数?在一般语法中,connection_variable是mysqli_connect()函数存储在任意变量和string_variable中的结果是应该通过这个函数来转义字符的变量。例如,我们创建一个PHP代码,首先我们使用函数mysqli_connect()以localhost为参数建立PHP与数据库的连接;数据库在同一台机器上,用户名;maadi,密码;qwer1234 和数据库名称;组织。然后我们应用if-else条件,通过一个函数mysqli_real_escape_string(connection_variable, string_variable)来检查连接是否成功建立。确保连接建立成功后,我们将声明变量named,Firstname,并分配一些包含特殊字符的字符串,然后将其插入数据库Linuxhint。

<?php
//Establishment of Connection with databas
$connection = mysqli_connect("localhost","maadi","Organization");

//checking status of connection
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " .mysqli_connect_error();
    exit();
}
//declare variable
$firstname2 ="John'o Alexander";

//inserting into the database
$sql="INSERT INTO Linuxhint (Emp_name) VALUES ('$firstname2')");

//execution of mysql queries
$r = mysqli_query($connection, "INSERT into Linuxhint VALUES ('firstname2')");
if(!$r){
    print("Error occurred\n");
}
else{
    print("Record inserted successfully\n");
}
//connection closed
mysqli_close($connection);
?>
如何使用mysqli_real_escape_string函数?用法解析
mysqli_real_escape_string函数教程

mysqli_real_escape_string函数用法示例:此代码的输出应该是错误的,因为字符串在它之间包含特殊字符 '。要检查输出,请在 Ubuntu 中打开终端并使用 php 命令以保存代码的文件名运行此 PHP 文件。

$ php file1.php
如何使用mysqli_real_escape_string函数?用法解析
mysqli_real_escape_string函数教程

错误已经发生,为了纠正这个错误,我们将使用 mysqli_real_escape_string() 并将字符串保存在数据库中。

<?php
//Establishment of Connection with databas
$connection = mysqli_connect("localhost","maadi","Organization");

//checking status of connection
if (mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: " .mysqli_connect_error();
    exit();
}

//declare variable
$firstname2 ="John'o Alexander";

//pass from the mysqli_real_escape_string()
$firstname = mysqli_real_escape_string($connection,$firstname2);
//inserting into the database
$sql="INSERT INTO Linuxhint (Emp_name) VALUES ( '$firstname' )");

//execution of mysql queries
$r = mysqli_query($connection, "INSERT into Linuxhint VALUES ('firstname')");
if(!$r){
    print("Error occurred\n");
}
else{
    print("Record inserted successfully\n");
}
//connection closed
mysqli_close($connection);
?>
如何使用mysqli_real_escape_string函数?用法解析
如何使用mysqli_real_escape_string函数?

再次在终端中运行该文件。

$ php file1.php
如何使用mysqli_real_escape_string函数?用法解析
如何使用mysqli_real_escape_string函数?

输出成功。为了验证它,我们将转到 MySQL 并运行以下命令来检查字符串是否插入到数据库中。

SELECT * FROM Linuxhint;
如何使用mysqli_real_escape_string函数?用法解析
mysqli_real_escape_string函数用法示例

mysqli_real_escape_string函数教程总结

如何使用mysqli_real_escape_string函数?保护文件是每个人的首要关注点,因为它们可能包含一些机密数据。大多数在黑客攻击中,特殊字符用于连接数据库以检索其数据以用于不道德的用途。为了防止这种情况,我们可以在数据插入数据库之前对数据进行各种安全检查。在本文中,我们讨论了 PHP 的一个内置函数,该函数用于以一种不会在数据库中交互特殊字符来损害它的方式来确保安全性。取而代之的是,该函数将其视为普通字符串并将该字符串插入到数据库中。

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: