大佬教程收集整理的这篇文章主要介绍了PHP和MYSQL致命错误:在布尔值上调用成员函数fetch_assoc(),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经搜索了大约3个小时,发现很多人都有类似的错误,但是我还没有找到解决此问题的答案.我看到许多人说“您的查询必须返回假”的答复,但这无济于事.我现在只使用mysql和PHP大约一个星期,所以我非常业余.
我故意将$count变量放在其中,以查看查询是否返回正确的行数,并且确实如此,但是while循环给了我错误.我的表中目前有2行,如果有帮助的话.总共有3列(id,User1,User2).
在进行了一系列关于如何在数组中存储多行的google搜索之后,所有响应都说要使用所述while循环,因为fetch_assoc()一次仅返回1行.
有人可以告诉我如何修复此代码,或者可以使用哪些代码将MysqL搜索的多行加载到数组中?
$i = 0;
$stmt1 = $this->conn->prepare("SELECT * FROM friends WHERE User1 = ? OR User2 = ?");
$stmt1->bind_param("ss", $myuid, $myuid);
if ($stmt1->execute()) {
$stmt1->store_result();
$count = $stmt1->num_rows;
while(($row = $stmt1->get_result()->fetch_assoc()) !== FALSE){
if ($row['User1'] == $myuid) {
$friends[$i]= $row['User2'];
$i++;
} else if ($row['User2'] == $myuid){
$friends[$i] = $row['User1'];
$i++;
}
}
$stmt1->close();
解决方法:
我终于能够使它工作了. @bio_sprite-感谢您绑定结果的提示.这是我使用的代码:
$friends = array();
$i = 0;
$stmt1 = $this->conn->prepare("SELECT User1, User2 FROM friends WHERE User1 = ? OR User2 = ?");
$stmt1->bind_param("ss", $myuid, $myuid);
if ($stmt1->execute()) {
$stmt1->bind_result($User1, $User2);
while($stmt1->fetch()){
if ($User1 != $myuid) {
$friends[$i]= $User1;
$i++;
} else if ($User2 != $myuid){
$friends[$i]= $User2;
$i++;
}
}
$stmt1->close();
return $friends;
以上是大佬教程为你收集整理的PHP和MYSQL致命错误:在布尔值上调用成员函数fetch_assoc()全部内容,希望文章能够帮你解决PHP和MYSQL致命错误:在布尔值上调用成员函数fetch_assoc()所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。