0

次のように、結果セット全体を配列に入れようとしています。

while($myres[]=$result->fetch_array(MYSQLI_ASSOC));

これは問題なく動作しますが、結果に 5 つの行が返される場合、配列には 6 つのインデックスがあり、最後は null です。したがって、私の配列は常に 1 つのインデックスが大きすぎるようです。

num_rows を使用して結果をループすることもできますが、これには独自のカウンターを設定してインクリメントする必要があります。上記の行の簡略化された効率が気に入っていますが、最後のインデックスに null セットを入力するのを止める方法.

fetch_allこれは、すべてのphpサーバーがインストールされているわけではない特別なドライバーが必要であることを発見した私の代替手段です。

4

2 に答える 2

1

複数の行を使用するだけです

$myres = array();
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
    $myres[] = $row;

ただし、余分な配列割り当て行なしでそれを持たなければならない場合

while ($row = $result->fetch_array(MYSQLI_ASSOC) && $myres[] = $row) {

しかし、それは多かれ少なかれ同じです。

于 2013-06-25T21:10:46.170 に答える