我将mysqli_query()
与动态变量$categoryName
一起使用,其中$categoryName
将是动态的,其中类别名称将根据用户从表单提交来获取。
在我的类别名称提交表单中,有Food, Vintage clothing, Leisure, Angel's
等...
我从数据库中查询内容仍然很陌生,目前设法使用mysqli_query()
来查询数据库,如下所示:
$sqlCommand = mysqli_query($conn, "SELECT * FROM products WHERE category='$categoryName'");
一切都很好用,我设法用我现有的类别名称查询数据库,但是只有一个不起作用的是具有Angel's
撇号符号的'
类别在它。
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in.......
我怀疑在mysqli_query()
之前需要调用某种类似过滤器的方法吗?
答案 0 :(得分:2)
$cat_name = mysqli_real_escape_string($conn, $categoryName);
$sqlCommand = mysqli_query($conn, "SELECT * FROM products WHERE category='$cat_name'");
答案 1 :(得分:1)
这称为 SQL-Injection 。在这种情况下,它不是通缉的,而是发生在正常业务中。您应该阅读有关SQL注入的an article并在将来的项目中阻止它。
您可以使用
转义该字符串mysqli_real_escape_string($conn, $categoryName);
快乐的编码。