• 技术文章 >后端开发 >PHP问题

    PHP如何使用mysqli_real_escape_string()函数?

    醉折花枝作酒筹醉折花枝作酒筹2021-06-04 17:34:30转载105
    本篇文章给大家介绍一下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' )";
       
       
    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()函数?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:segmentfault,如有侵犯,请联系admin@php.cn删除
    专题推荐:php 数据库
    上一篇:详细介绍PHP中的数据库连接持久化 下一篇:PHP如何使用Ds\Vector copy()函数?
    第16期线上培训班

    相关文章推荐

    • 20道必知必会的PHP基础面试题(附答案)• 一起学习PHP的zip压缩工具扩展包吧!• ThinkPHP5访问怎么去除/public/index.php• phpmyadmin怎么在某数据库里创建函数• 详细介绍PHP中的数据库连接持久化

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网