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