如何使用 mysqli_real_escape_string 作为 int 值?
How to use mysqli_real_escape_string for int value?
我有这个 $search= mysqli_real_escape_string($conn,$_POST['search']);
现在,我想知道这是否可以转换为 int,这是否是避免 sql 注入的安全选择。
$sql ="SELECT * FROM basket WHERE quantity =$search";
**这里的数量是整数
是的,严格来说,使用 (int)
或 intval()
转换变量可以消除该变量导致 SQL 注入的风险。
但这不是避免使用查询参数的好理由。
一方面,您可能同时拥有字符串和整数变量以与您的 SQL 语句组合。根据变量的类型使用不同的方法使变量安全,这会使您的代码更加复杂。如果您只对所有变量使用查询参数,则可以简化您的代码。
请做对。
我有这个 $search= mysqli_real_escape_string($conn,$_POST['search']); 现在,我想知道这是否可以转换为 int,这是否是避免 sql 注入的安全选择。
$sql ="SELECT * FROM basket WHERE quantity =$search";
**这里的数量是整数
是的,严格来说,使用 (int)
或 intval()
转换变量可以消除该变量导致 SQL 注入的风险。
但这不是避免使用查询参数的好理由。
一方面,您可能同时拥有字符串和整数变量以与您的 SQL 语句组合。根据变量的类型使用不同的方法使变量安全,这会使您的代码更加复杂。如果您只对所有变量使用查询参数,则可以简化您的代码。
请做对。