Php 如何防止此代码中的sql注入,请在我的代码中添加您的建议

Php 如何防止此代码中的sql注入,请在我的代码中添加您的建议,php,mysql,Php,Mysql,防止SQL注入PDO(PHP数据对象)是最好的方法。PDO为程序员提供了更大的灵活性,就像您希望将项目切换到另一个数据库一样,PDO使过程非常简单。您只需更改连接字符串和一些查询。 如果您的项目处于初始阶段,并且希望获得更大的灵活性,我强烈建议您切换到PDO。要了解更多关于PDO的信息,您可以参考此链接 好的,回到你问的问题上来。要防止mysqli接口中的SQL注入,可以使用mysqli\u real\u escape\u string()函数,该函数包含两个参数: 连接-指定要使用的MySQL

防止SQL注入PDO(PHP数据对象)是最好的方法。PDO为程序员提供了更大的灵活性,就像您希望将项目切换到另一个数据库一样,PDO使过程非常简单。您只需更改连接字符串和一些查询。 如果您的项目处于初始阶段,并且希望获得更大的灵活性,我强烈建议您切换到PDO。要了解更多关于PDO的信息,您可以参考此链接

好的,回到你问的问题上来。要防止mysqli接口中的SQL注入,可以使用
mysqli\u real\u escape\u string()
函数,该函数包含两个参数:

  • 连接-指定要使用的MySQL连接(必需)
  • escapestring-要转义的字符串(必需)
  • 在此步骤之后,您的代码将如下所示-

      <?php
    // I fetching data from sql table "product".i want to prevent all unwanted characters and all.please add your suggestions in my code.  
    
      if(isset($_GET['search'])){
    
       $search_query = $_GET['user_query'];
    
       $get_pro = "select * from product where title like '%$search_query%'";
    
       $run_pro = mysqli_query($con, $get_pro); 
    
       while($row_pro=mysqli_fetch_array($run_pro)){
       $pro_title = $row_pro['title'];
        echo " <span>$pro_title</span> "
       }
    }   
    ?>
    
    其中$conn将是您的连接句柄。
    您可以在此步骤后附加“%”运算符,并可以使用结果执行查询。

    格式错误的问题很难理解:不太可能得到直接答案。感谢您的建议。如果您觉得我的答案很有帮助,请不要忘了对其进行投票。Mysqli非常好,你忘了提到防止sql注入的唯一正确方法,那就是使用带有占位符的参数化查询。正如Qirel在这里所说的,手动转义是如何导致sql注入错误的,因为你必须使用字符串插值或连接来编写查询。无论哪种方式,只要你犯了一个错误,你就有危险。如果每次将用户数据注入查询时都严格遵守使用占位符值的规定,则占位符值可以保证操作正确。
     $search_query = mysqli_real_escape_string($conn, $_GET['user_query']);