MySQLi での結果セットの反復
MySQLi で結果セットを操作する場合、最初の値のみにアクセスできるという問題が発生する可能性があります反復中。これは通常、fetch_array() の使用とその動作の不適切な理解が原因で発生します。
fetch_array() のデフォルトの動作
デフォルトでは、fetch_array() は両方の要素を含む配列を返します。 MYSQLI_BOTH として知られるインデックス付きの連想キー。インデックス付きキーまたは連想キーのみを含む結果セットを指定するには、それぞれ MYSQLI_NUM または MYSQLI_ASSOC を使用します。
fetch_array() の代替手段
fetch_array() に依存するのではなく、より効率的で簡潔な代替案を検討してください:
while ($row = $output->fetch_array(MYSQLI_ASSOC)) { echo $row['uid']; }
while ($row = $output->fetch_array(MYSQLI_NUM)) { echo $row[0]; }
foreach ($output as $row) { echo $row['uid']; }
反復のトラブルシューティング
$i を使用してインデックス付きキーをインクリメントすることはできません。連想キーを含む結果セットに適しています。たとえば、結果セットには次の構造の値が含まれる場合があります:
[ 0 => [0 => 1, 'uid' => 1], 1 => [0 => 2, 'uid' => 2], 2 => [0 => 3, 'uid' => 3]... ]
このシナリオでは、$row[1] が後続の反復で存在しないため、問題が発生します。
以上がMySQLi 結果セットの最初の値にしかアクセスできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。