現在の位置: ホーム> 最新記事一覧> [Real_Query関数とmysqli_fetch_assoc関数を組み合わせて、クエリの結果を簡単に取得して処理する

[Real_Query関数とmysqli_fetch_assoc関数を組み合わせて、クエリの結果を簡単に取得して処理する

gitbox 2025-08-30

Real_Query関数とmysqli_fetch_assoc関数を組み合わせると、クエリの結果を簡単に取得して処理できます

PHPでは、MySQLデータベースで操作する際にMySQLI拡張機能が最も一般的に使用されるツールの1つです。 MySQLI拡張機能を使用すると、データベースに簡単に接続し、クエリを実行し、クエリの結果を取得できます。この記事では、 Real_Query関数とMySQLI_FETCH_ASSOC関数を組み合わせて、クエリの結果を効率的に取得および処理する方法を紹介します。

real_querymysqli_fetch_assocとは何ですか?

これら2つの機能を組み合わせる方法を理解する前に、それらの基本的な機能を理解する必要があります。

  • REAL_QUERY :これは、SQLクエリを実行するためにMySQLI拡張機能によって提供される関数です。クエリ関数とは異なり、 REAL_QUERYはSQLコマンドをデータベースに直接送信して処理します。複雑なクエリを実行する必要がある場合、 Real_Queryを使用すると、より多くの制御と柔軟性が得られます。

  • mysqli_fetch_assoc :これは、クエリ結果からデータの列を取得し、連想配列として返すもう1つの非常に一般的に使用されるmysqli関数です。各フィールド名は配列のキーとして使用され、フィールド名を介して対応する値にアクセスできます。

Real_Queryを使用してデータを取得します

まず、データベース接続を作成し、 Real_Queryを使用してSQLクエリを実行する必要があります。 Real_Queryは結果を直接返しませんが、 mysqli_use_resultまたはmysqli_store_resultを介してクエリの結果セットを取得します。

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// データベース接続を作成します</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">'localhost'</span></span><span>, </span><span><span class="hljs-string">'root'</span></span><span>, </span><span><span class="hljs-string">''</span></span><span>, </span><span><span class="hljs-string">'test_db'</span></span><span>);

</span><span><span class="hljs-comment">// 接続が成功しているかどうかを確認してください</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error) {
    </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">'接続に失敗しました: '</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error);
}

</span><span><span class="hljs-comment">// 意味SQLクエリステートメント</span></span><span>
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"SELECT id, name, age FROM users"</span></span><span>;

</span><span><span class="hljs-comment">// クエリを実行します</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">real_query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>)) {
    </span><span><span class="hljs-comment">// クエリの結果を取得します</span></span><span>
    </span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">use_result</span></span><span>(); </span><span><span class="hljs-comment">// クエリの結果を使用します</span></span><span>

    </span><span><span class="hljs-comment">// クエリが成功したかどうかを確認してください</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span>) {
        </span><span><span class="hljs-comment">// 結果をループする</span></span><span>
        </span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span><span>()) {
            </span><span><span class="hljs-comment">// データの各行を処理します</span></span><span>
            </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ID: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>] . </span><span><span class="hljs-string">" | Name: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>] . </span><span><span class="hljs-string">" | Age: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'age'</span></span><span>] . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
        }
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"クエリの結果は空です"</span></span><span>;
    }
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"クエリに失敗しました: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;error;
}

</span><span><span class="hljs-comment">// データベース接続を閉じます</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

このコードでは、最初にMySQLIオブジェクトを使用してMySQLデータベースへの接続を作成します。接続が成功した場合、 REAL_QUERYメソッドを使用してSQLクエリステートメントを実行します。次に、 use_resultを介してクエリ結果を設定し、 mysqli_fetch_assoc関数を介して行ごとに結果を取得します。

mysqli_fetch_assocを使用して結果を処理します

mysqli_fetch_assocは、結果セットの各行を連想配列として返す非常に強力な関数です。上記の例では、 $ rowは$ row ['id']$ row ['name']$ row ['age']などのフィールド名で各行のデータにアクセスできる配列です。

このアプローチは、 MySQLI_FETCH_ROW (数値インデックスアレイを返す)を使用するよりも読みやすいです。これは、各フィールドの位置を覚えていないフィールド名で直接データにアクセスできるためです。

Real_Querymysqli_fetch_assocの利点

  1. 柔軟性REAL_QUERYは、より複雑なクエリを処理でき、大規模なアプリケーションまたは複雑なクエリ操作により多くの制御を提供します。単純な選択クエリだけでなく、 real_Queryを介して任意のSQLコマンドを直接実行できます。

  2. 効率MySQLI_FETCH_ASSOCによって返される連想配列は、クエリの結果を処理する際により読みやすく直感的であり、データが効率的かつ明確に処理されるシナリオに適しています。

  3. エラー処理Real_Queryは、より多くのエラー情報と診断情報を提供します。これにより、開発者は問題を見つけることができます。 mysqli_fetch_assocは、結果セットを通過するプロセスを簡素化し、インデックスを手動で管理する問題を回避します。

要約します

Real_QueryMySQLI_FETCH_ASSOCを組み合わせて、データベースクエリの結果を簡単に取得および処理できます。 Real_Queryは柔軟なクエリ実行機能を提供しますが、 MySQLI_FETCH_ASSOCは結果の処理をより明確かつ直感的にします。これら2つの使用を習得すると、PHPでのデータベース操作の効率と読みやすさが大幅に向上します。