初学者对while 的一点疑惑
程序员文章站
2022-05-21 08:38:07
...
function dql($sql)
{
$res=$this->mysqli->query($sql);
if(!empty($res))
{
while ($row=$res->fetch_row())
return $row;
$res->free_result();
}else
{return null;}
}
我现在不明白他为什么只返回一条语句?查询到的结果有很多,while里面只要是真他就返回一条语句,可是为什么他只返回最后一条语句?
$a=20;
while($a {echo $a;
$a++}
?>
上面这个和$row 有什么区别吗?不也是一次先判断在输出,然后接着判断在输出?最后直到条件不成立,就不输出了。可为什么$row 只输出一次?$row 的条件就是$res 里面没有记录了,他就不再循环了。。是不是我对while理解不对?
我一直理解为只要while条件里面为真就会循环一次代码块,可从$row里面好像是都循环完了才输出?
{
$res=$this->mysqli->query($sql);
if(!empty($res))
{
while ($row=$res->fetch_row())
return $row;
$res->free_result();
}else
{return null;}
}
我现在不明白他为什么只返回一条语句?查询到的结果有很多,while里面只要是真他就返回一条语句,可是为什么他只返回最后一条语句?
$a=20;
while($a {echo $a;
$a++}
?>
上面这个和$row 有什么区别吗?不也是一次先判断在输出,然后接着判断在输出?最后直到条件不成立,就不输出了。可为什么$row 只输出一次?$row 的条件就是$res 里面没有记录了,他就不再循环了。。是不是我对while理解不对?
我一直理解为只要while条件里面为真就会循环一次代码块,可从$row里面好像是都循环完了才输出?
回复讨论(解决方案)
至少你的观察是很不仔细的
while ($row=$res->fetch_row())
return $row;
只会返回第一条记录,而不是其他