先比较一下2个代码
1.错误的代码
<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
}
$sql = "SELECT * from products";
$result = mysqli_query($con,$sql);
$row = mysqli_fetch_array($result);
while($row){
//code
}
2.正确的代码
<?php
$con=mysqli_connect("localhost","my_user","my_password","my_db");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
}
$sql = "SELECT * from products";
$result = mysqli_query($con,$sql);
while($row=mysqli_fetch_array($result)){
//code
}
对比:
$row = mysqli_fetch_array($result);
while($row){
//code
}
<!-----这个是错的,$row已经把数据库中的信息变成数组$row[0],$row[1]....$row[n],
再把这个添加到while语句中,意思就是满足while($row[0],$row[1]....$row[n])的时候执行下面语句
这明显是错误的!不是一个一个来,而是全部数组都得满足的时候执行!这怎么可能!
所以打开页面加载出来的结果肯定是死循环!页面会一直加载出来----->
和
while($row=mysqli_fetch_array($result)){
//code
}
<!-----这个是对的,意思就是while($row[0]){//code},
然后执行while($row[1]){//code}
....
while($row[n]){//code}
就是一个一个执行!----->
总结:
要用while和mysqli_fetch_array()的时候这样用:
while($row=mysqli_fetch_array($result)){
//code
}