鍍金池/ 問答/PHP  數(shù)據(jù)庫/ 使用while mysqli_fetch_array導(dǎo)致死循環(huán)

使用while mysqli_fetch_array導(dǎo)致死循環(huán)

我是php初學(xué)者,一直用

while ($t = mysqli_fetch_array(mysqli_query($conn, $sql))) {
    $rs[count($rs)] = $t;

}

這樣的語句獲得查詢結(jié)果,但今天出問題了,循環(huán)不會停止,很苦惱。具體代碼:

$courseID=13;
...
$sql_reply = "select * from reply where relate_course_id='" . $courseID . "'";
$rs_reply = array();
while ($t = mysqli_fetch_array(mysqli_query($conn, $sql_reply))) {
    //var_dum(&t);
    $rs_reply[count($rs_reply)] = $t;

}

reply表中只有一條數(shù)據(jù),但while循環(huán)會不停的取這一條數(shù)據(jù)導(dǎo)致超過30s后臺掛掉(循環(huán)中若加入var_dum(&t)會不停輸出重復(fù)數(shù)據(jù)),可是單獨(dú)拿這句sql查詢?nèi)?zhí)行是可以得到正確結(jié)果的。把表清空后while循環(huán)正常,現(xiàn)在是只要表中有數(shù)據(jù),while循環(huán)就不會停止......求教原因,十分感謝!

回答
編輯回答
陌如玉

發(fā)現(xiàn)原因,為了圖省事犯了個很低級的錯誤...應(yīng)該把mysqli_query($conn, $sql)提出來先執(zhí)行:

$r=mysqli_query($conn, $sql);
while ($t = mysqli_fetch_array($r)) {
    $rs[count($rs)] = $t;
}
2017年2月6日 08:29