<分区>
我已经搜索了大约 3 个小时,我看到很多人都有类似的错误,但我还没有找到如何解决这个问题的答案。我看到很多人的回复说“您的查询必须返回 false”,但这无济于事。我现在只使用 mysql 和 php 大约一个星期,所以我非常业余。
我特意将 $count 变量放在那里,看看我的查询是否会返回正确的行数,确实如此,但是 while 循环给了我错误。如果有帮助的话,我的表中目前有 2 行。还有 3 列(id、User1、User2)。
在对如何在数组中存储多行进行了大量谷歌搜索后,所有的回复都说使用 said 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();