Php 如何获得;而其他的则是;获取数组的类型逻辑?
我有以下代码:Php 如何获得;而其他的则是;获取数组的类型逻辑?,php,sql,while-loop,fetch,Php,Sql,While Loop,Fetch,我有以下代码: while($m = $movieResult->fetch_array(MYSQLI_ASSOC)){ // stuff happens here } return $stuff; 它可以工作,但我真正需要的是检测while循环何时不像此示例那样运行,而是多次迭代while循环: if($m = $movieResult->fetch_array(MYSQLI_ASSOC)){ // stuff happens here re
while($m = $movieResult->fetch_array(MYSQLI_ASSOC)){
// stuff happens here
}
return $stuff;
它可以工作,但我真正需要的是检测while循环何时不像此示例那样运行,而是多次迭代while循环:
if($m = $movieResult->fetch_array(MYSQLI_ASSOC)){
// stuff happens here
return $stuff;
}
else{
return false;
}
我不确定您使用的是哪个扩展(pdo/msqli/…),但我认为您可以在开始循环之前先查看是否有任何结果 示例:
if ($movieResult->num_rows > 0){
... your while loop here
}else{
return false;
}
请注意->fetch_数组获取一行结果数据。它不会获取整个结果集。这可能是您想要的,但是考虑到您已经用这段代码问了其他问题,我很确定您将得到无效的结果。这是真的,我想我只需创建一个变量集为false,然后如果while循环运行,我将它改为array,并且。=对于每个迭代..=用于字符串操作。array_push或
$arr[]=…
符号更合适。这就是我想说的:)我试图避免这种情况,因为在前面的问题中,我了解到之前检查while循环是没有意义的。“num_rows”检查的性能如何?如果它不重要,我可以使用它。性能方面?*\u num\u rows方法只返回查询中的行数。如果它是零,那么就不要运行while循环,就这么简单。我现在明白了,在我看来,要获得行数,有另一个数据库调用,现在似乎很愚蠢:)在询问之后,我意识到我可以将$stuff设置为false,并在while循环中更新它。你的方法也行,谢谢
if ($movieResult->num_rows > 0){
... your while loop here
}else{
return false;
}