我正在尝试 运行 php 中的查询,它在 phpMyAdmin 中工作但不在脚本中

I am trying to run a query in php its working in phpMyAdmin but not in script

我正在尝试为基于博客的项目获取相关文章 查询:

 $query = mysqli_query($con, "SELECT * FROM posts WHERE cat_id like '%$cat_arr[i]%' AND NOT post_id = '$postid'");

问题: 当 运行 在 phpMyAdmin 中作为正常查询时,它会根据需要获取 3-4 行,但在脚本中,它会获取帖子 table

中的所有行

变量'%$cat_arr[i]%好像是空白

因此,如果您 运行 查询:

$query = mysqli_query($con, "SELECT * FROM posts WHERE cat_id like '%$cat_arr[i]%' AND NOT post_id = '$postid'");

考虑的不是两个条件,而是一个条件 post_id = '$postid'

如果我们在LIKE %%中传空格,就等于不加条件

因此,最好的解决方案是先评估变量:

if (isset($cat_arr[i]) && ! empty($cat_arr[i]) && ! empty($postid)) {
 $query = mysqli_query($con, "SELECT * FROM posts WHERE cat_id like '%$cat_arr[i]%' AND NOT post_id = '$postid'");
}
else {
 // Another condition
}