使用php 查询数据库中的数据时,出现了:
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, bool given in.......
因为刚开始使用
select * from 表名;
的时候没有问题,但是后来加了约束条件就出现问题。但是一直不知道问题出在哪里。
百度找了很多解决方法也没有准确的答案,因为每个人的错误可能是不同的。
后来发现,只需要加入简单一行代码就可以找出问题所在:
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'";
现在的查询结果:
我是参考这篇文章: