ホームページ >データベース >mysql チュートリアル >「mysql_fetch_array」を使用すると結果が 2 倍になるのはなぜですか?
mysql_fetch_array を使用すると配列の結果が 2 倍になる
mysql_fetch_array を使用して MySQL データベースからデータを取得すると、結果が 2 倍になる可能性があります。これは、デフォルトで、mysql_fetch_array が配列内の各行に対して連想インデックスと数値インデックスの両方を返すために発生します。
次のコードを考えてみましょう:
<code class="php">$query_result_array = mysql_fetch_array($query_result);</code>
この例では、$query_result_array には両方の数値が含まれます。そして連想インデックス。その結果、配列を反復処理するときに 2 つの出力が得られます:
<code class="php">foreach($table as $table_var) { echo "<td>" . $table_var . "</td>"; } </code>
これを回避するには、mysql_fetch_array の 2 番目のパラメータを使用して返されるインデックスのタイプを制限できます:
<code class="php">// Numeric keys only $query_result_array = mysql_fetch_array($query_result, MYSQL_NUM); // Associative keys only $query_result_array = mysql_fetch_array($query_result, MYSQL_ASSOC);</code>
あるいは、mysql_fetch_row 関数と mysql_fetch_assoc 関数を使用して、それぞれ数値キーまたは連想キーのみを取得できます。
<code class="php">// Numeric keys only $query_result_array = mysql_fetch_row($query_result); // Associative keys only $query_result_array = mysql_fetch_assoc($query_result);</code>
これらの手法を使用すると、配列に必要なタイプのインデックスのみが含まれるようにすることができます。反復処理時に結果が 2 倍になるのを防ぎます。
以上が「mysql_fetch_array」を使用すると結果が 2 倍になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。