0

これに対する答えがあるかどうかはわかりませんが、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 を選択し、1 つのフェッチのみを使用することは可能ですか (したがって、フェッチするためのループはありません)。目標は、すべての ID を選択する単純なコードです。

小さな編集:少し改善するために置き換えることができますfetch_assoc()fetch_row()、ループを置き換えることを検討しています

いくつかの質問に答えるために:
私は自分のカスタムデータベースクラスでmysqliを使用しています(私はOOを初めて使用するので、そのうち改善するかもしれませんが、それは別の話です)

4

2 に答える 2

1

いいえ、mysqli 拡張機能では、1 回の操作ですべての行をフェッチする方法は提供されていません。一度に 1 つずつしかフェッチできません。現在この機能を提供している唯一の PHP API は PDO です。

于 2013-10-28T16:23:32.487 に答える