「mysql_fetch_array」を使用すると結果が 2 倍になるのはなぜですか?

DDD
リリース: 2024-10-27 09:36:30
オリジナル
202 人が閲覧しました

Why do I get doubled results when using `mysql_fetch_array`?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!