現在の位置: ホーム> 最新記事一覧> mysqli_result :: fetch_columnとmysqli_fetch_arrayの比較と選択

mysqli_result :: fetch_columnとmysqli_fetch_arrayの比較と選択

gitbox 2025-05-26

データベース操作にPHPを使用する場合、 MySQLI拡張機能は、クエリ結果を取得するための複数の方法を提供します。その中で、 mysqli_result :: fetch_columnmysqli_fetch_arrayは、一般的に使用されているが異なる機能です。それらの違いと適用可能なシナリオを理解することは、効率的で維持しやすいコードを作成するために非常に重要です。


1。基本的な紹介

  • mysqli_result :: fetch_column
    これは、PHP 8.1バージョンに追加された新しい方法であり、オブジェクト指向のスタイルMySQLI_RESULTクラスに属します。結果セットから指定された列の値を取得し、単一のフィールドのデータを返すために使用されます。

  • mysqli_fetch_array
    これは、現在の行のすべてのフィールドデータを返す手続き型指向の関数です。パラメーター設定に応じて、連想配列、数値インデックスアレイ、またはその両方を返します。


2。詳細な違い

特性mysqli_result :: fetch_column mysqli_fetch_array
返品値指定された列の単一フィールド値を返します現在の行の配列(関連付け、数値インデックス、またはその両方)を返します
スタイルを使用しますオブジェクト指向プロセス指向
返品タイプスカラー値(文字列、数字など)配列
適用可能なシナリオデータの特定の列だけがメモリを保存します複数の列を含むデータの列全体が必要です
PHPバージョンの要件PHP 8.1以降PHPの以前のバージョンをサポートします

3.例を使用してください

mysqli_result :: fetch_columnの例

<?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$result = $mysqli->query("SELECT id, name FROM users");

while ($id = $result->fetch_column(0)) {  // 最初の列を取得します id
    echo "ユーザーID: $id\n";
}

$mysqli->close();
?>

mysqli_fetch_arrayの例

<?php
$mysqli = new mysqli("gitbox.net", "user", "password", "database");
$result = $mysqli->query("SELECT id, name FROM users");

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    echo "ユーザーID: " . $row['id'] . ", ユーザー名: " . $row['name'] . "\n";
}

$mysqli->close();
?>

4.より適切な機能を選択する方法は?

  • クエリ結果の1つの列のみを気にし、PHP 8.1以降を使用している場合、 fetch_columnはより簡潔で効率的な選択です。
    指定された列のデータを直接返し、不要な配列のオーバーヘッドを回避し、コードをより簡潔にします。

  • 行全体で複数のフィールドにアクセスする必要がある場合、またはプロジェクトがまだPHP 8.0以下を使用している場合は、 mysqli_fetch_arrayを使用する方が適切です。
    より多くのリターンタイプをサポートし、フィールドへの柔軟なアクセスを提供します。

  • オブジェクト指向VSプロセス指向<BR> オブジェクト指向プログラミングに慣れている場合は、 $ result-> fetch_column()およびmysqli_resultのその他のオブジェクト指向の方法を使用することをお勧めします。
    それ以外の場合、 mysqli_fetch_array()は、依然として古典的で広く使用されている手続き機能です。


5。概要

シーン推奨機能
単一のフィールド(単一列)のみを取得しますmysqli_result :: fetch_column
複数のフィールドの完全な記録を取得しますmysqli_fetch_arrayまたは$ result-> fetch_assoc()
PHP 8.0以下と互換性がありますmysqli_fetch_array

関数を選択するときは、ビジネスニーズとPHPバージョンに基づいて意思決定を行う必要があります。 2つの違いを理解することで、より簡潔で効率的なデータベースアクセスコードを書き込むのに役立ちます。