欢迎光临
我们一直在努力

PHP如何使用mysqli_real_escape_string()函数?

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

PHP如何使用mysqli_real_escape_string()函数?用法示例

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' )";   vps云服务器       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.

本文来源网站:info110.com,若侵权,请联系删除。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。