php 查询数据库出现:mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in.....

使用php 查询数据库中的数据时,出现了:

 Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in.......

在这里插入图片描述
因为刚开始使用

select * from 表名;

的时候没有问题,但是后来加了约束条件就出现问题。但是一直不知道问题出在哪里。
百度找了很多解决方法也没有准确的答案,因为每个人的错误可能是不同的。
后来发现,只需要加入简单一行代码就可以找出问题所在:
php 查询数据库出现:mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in....._第1张图片

if (!$res) {
    printf("Error: %s\n", mysqli_error($conn));
    exit();
}

这样就可以输出是什么错误。
发现原来是查询语句发生错误,而不是mysqli_fetch_assoc的参数问题
我的问题是:

Error: Unknown column '潼关吏' in 'where clause'

这里的’潼关吏’是我表的列名,用作约束条件,通过变量 $searchpoetname 传递。
原来的查询语句是:

$sql="select * from 杜甫 where poetname=$searchpoetname";

解决方法很简单,只需要用’ '将变量括起来即可

$sql="select * from 杜甫 where poetname='$searchpoetname'";

现在的查询结果:
php 查询数据库出现:mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in....._第2张图片

我是参考这篇文章:

https://www.cnblogs.com/cc18/p/6150335.html

你可能感兴趣的:(php 查询数据库出现:mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in.....)