![](/img/trans.png)
[英]Fetching the result array from mysql query in php, while loop issue
[英]fetching a result from mysqli select query with limit via while returns infinite loop how to prevent this?
以某种方式使用while()
遍历mysqli->fetch()
返回无限循环
我已经在查询中设置了LIMIT 4
。 我编写的代码顺序可能有问题
<?php
$user = $_SESSION['username'];
$stmt=$con->prepare("SELECT id_msg,dari,subject,tgl
FROM inbox
WHERE username=?
ORDER BY id_msg DESC LIMIT 4");
if($stmt===false){
die("Error prepare ".htmlspecialchars($mysqli->error));
}
$bp=$stmt->bind_param("s",$user);
if($bp===false){
die("Error Binding param ".htmlspecialchars($mysqli->error));
}
$bp=$stmt->execute();
if($bp===false){
die("Error Execute ".htmlspecialchars($mysqli->error));
}
$bp=$stmt->bind_result($id,$dari,$subject,$tgl);
if($bp===false){
die("Error Bind result ".htmlspecialchars($mysqli->error));
}
$ambil=$stmt->fetch();
while($ambil){
echo $dari;
}
?>
当前,收件箱表中只有1行,因此应该只返回1个结果。
我编辑了您的代码。 看剧本的结尾
<?php
$user = $_SESSION['username'];
$stmt=$con->prepare("SELECT id_msg,dari,subject,tgl
FROM inbox
WHERE username=?
ORDER BY id_msg DESC LIMIT 4");
if($stmt===false){
die("Error prepare ".htmlspecialchars($mysqli->error));
}
$bp=$stmt->bind_param("s",$user);
if($bp===false){
die("Error Binding param ".htmlspecialchars($mysqli->error));
}
$bp=$stmt->execute();
if($bp===false){
die("Error Execute ".htmlspecialchars($mysqli->error));
}
$bp=$stmt->bind_result($id,$dari,$subject,$tgl);
if($bp===false){
die("Error Bind result ".htmlspecialchars($mysqli->error));
}
$ambil=$stmt->fetch();
while($ambil){
echo $dari;
// We need to get next result, else we will have infinite loop here
$ambil=$stmt->fetch();
// -----------------------------
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.