小兔网

本篇文章给大家介绍一下PHP使用mysqli_real_escape_string()函数的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

PHP如何使用mysqli_real_escape_string()函数?-PHP问题

mysqli_real_escape_string()函数是PHP中的内置函数, 用于转义所有特殊字符以用于SQL查询。在将字符串插入数据库之前使用它, 因为它删除了可能干扰查询操作的任何特殊字符。

当使用简单的字符串时, 它们中可能包含特殊字符, 例如反斜杠和撇号(尤其是当它们直接从输入了此类数据的表单中获取数据时)。这些被认为是查询字符串的一部分, 并且会干扰其正常运行。

<?php  $connection = mysqli_connect(     "localhost" , "root" , "" , "Persons" );          // Check connection if (mysqli_connect_errno()) {      echo "Database connection failed." ; }    $firstname = "Robert'O" ;$lastname = "O'Connell" ;   $sql ="INSERT INTO Persons (FirstName, LastName)              VALUES ( '$firstname' , '$lastname' )";      if (mysqli_query( $connection , $sql )) {           // Print the number of rows inserted in     // the table, if insertion is successful     printf( "%d row inserted.n" , $mysqli ->affected_rows);}else {           // Query fails because the apostrophe in      // the string interferes with the query     printf( "An error occurred!" );}   ?>

在上面的代码中, 查询失败, 因为使用mysqli_query()执行撇号时, 会将撇号视为查询的一部分。解决方案是在查询中使用字符串之前使用mysqli_real_escape_string()。

<?php   $connection = mysqli_connect(         "localhost" , "root" , "" , "Persons" );   // Check connection if (mysqli_connect_errno()) {      echo "Database connection failed." ; }        $firstname = "Robert'O" ;$lastname = "O'Connell" ;   // Remove the special characters from the// string using mysqli_real_escape_string   $lastname_escape = mysqli_real_escape_string(                     $connection , $lastname );                      $firstname_escape = mysqli_real_escape_string(                     $connection , $firstname );   $sql ="INSERT INTO Persons (FirstName, LastName)             VALUES ( '$firstname' , '$lastname' )";  if (mysqli_query( $connection , $sql )) {           // Print the number of rows inserted in     // the table, if insertion is successful     printf( "%d row inserted.n" , $mysqli ->affected_rows);}   ?>

输出如下:

1 row inserted.

以上就是PHP如何使用mysqli_real_escape_string()函数?的知识。速戳>>知识兔学习精品课!