是否可以在没有while循环的情况下选择所有id

时间:2013-10-28 16:15:55

标签: php mysql loops

我不确定是否有这方面的答案,但我在考虑PHP对while循环的速度不是很快。这让我想到了一个基本的功能,它做了类似的事情:

$array = array();
$sItem = DB::cms_query("SELECT id FROM someTable");
while($fItem = $sItem->fetch_assoc() ){
    $array[] = $fItem['id']; // store the id in an array
}

这会给我一个包含所有找到的id的数组。我想知道的是:

是否可以在1个查询中选择所有这些id,并且只使用一次获取(因此不需要获取循环),而无需创建困难的代码。目标是选择所有id的简单代码。

小编辑:我可以用fetch_assoc()替换fetch_row()以改善一点点,但我正在寻找替换循环

回答一些问题:
我在我自己的自定义数据库类中使用 mysqli (我是OO的新手,所以我可能会改进它,但那是另一个故事)

2 个答案:

答案 0 :(得分:1)

不,mysqli扩展没有提供任何方法来通过一次操作获取所有行,您一次只能获取一个。目前提供此功能的唯一PHP API是PDO。

答案 1 :(得分:0)

  
    

但我正在考虑这样一个事实:php不是很快就有了while循环

  

你获取了多少ID以及你所谓的“不快”?

我认为性能不佳的原因很可能不是一个while循环,而是代码中的其他一些故障......