現在の位置: ホーム> 最新記事一覧> mysqli_result :: field_seekとmysqli_fetch_assocを使用してフィールドデータを取得する方法は?

mysqli_result :: field_seekとmysqli_fetch_assocを使用してフィールドデータを取得する方法は?

gitbox 2025-08-11

mysqli_result :: field_seekとmysqli_fetch_assocを使用してフィールドデータを取得する方法は?

データベース操作にPHPのMySQLI拡張機能を使用する場合、クエリ結果セットでフィールドデータを取得することは一般的なタスクです。 MySQLI拡張機能は、結果セットを処理する複数の方法を提供します。ここでは、 mysqli_result :: field_seekmysqli_fetch_assocは2つの非常に有用な機能です。 field_seekを使用すると、結果セットポインターを指定されたフィールド位置に移動できますが、 mysqli_fetch_assocはアソシティブ配列に設定された結果のデータを取得できます。これらの2つの機能を使用すると、必要なフィールドのデータを取得するためにより効率的かつ柔軟になります。

1。基本概念

  • mysqli_result :: field_seek :この方法では、結果のポインターを指定されたフィールドインデックス位置に移動できます。 mysqli_fetch_assocmysqli_fetch_rowなどの機能を通じて得られた後続のデータに影響します。

  • mysqli_fetch_assoc :このメソッドは、現在の結果セットのポインター位置からデータの列を取得し、連想配列として返します。

2。例: field_seekmysqli_fetch_assocを組み合わせて使用します

ユーザーと呼ばれるデータベーステーブルがあるとしますが、テーブル構造は次のとおりです。

 <span><span><span class="hljs-keyword">CREATE</span></span><span> </span><span><span class="hljs-keyword">TABLE</span></span><span> users (
    id </span><span><span class="hljs-type">INT</span></span><span> </span><span><span class="hljs-keyword">PRIMARY</span></span><span> KEY,
    username </span><span><span class="hljs-type">VARCHAR</span></span><span>(</span><span><span class="hljs-number">50</span></span><span>),
    email </span><span><span class="hljs-type">VARCHAR</span></span><span>(</span><span><span class="hljs-number">100</span></span><span>),
    age </span><span><span class="hljs-type">INT</span></span><span>
);
</span></span>

FIELD_SEEKMySQLI_FETCH_ASSOCを使用してフィールドデータを取得する方法を示す簡単なPHP例を以下に示します。

 <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">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database_name"</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">"Connection failed: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>-&gt;connect_error);
}

</span><span><span class="hljs-comment">// クエリを実行します</span></span><span>
</span><span><span class="hljs-variable">$query</span></span><span> = </span><span><span class="hljs-string">"SELECT id, username, email, age FROM users"</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__">query</span></span><span>(</span><span><span class="hljs-variable">$query</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">// 使用 field_seek 指定されたフィールドの場所に移動します</span></span><span>
    </span><span><span class="hljs-comment">// 最初に取得したいとします 'email' フィールド(第二个フィールド),フィールド索引从 0 始める</span></span><span>
    </span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">field_seek</span></span><span>(</span><span><span class="hljs-number">2</span></span><span>);  </span><span><span class="hljs-comment">// 'email' フィールド的索引为2</span></span><span>

    </span><span><span class="hljs-comment">// 結果を取得する最初の行</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">// この行にデータを出力します,見せる 'email' フィールド</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span>) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Email: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'email'</span></span><span>] . </span><span><span class="hljs-string">"\n"</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-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Username: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'username'</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">"\n"</span></span><span>;
    }

    </span><span><span class="hljs-comment">// 結果セットをリリースします</span></span><span>
    </span><span><span class="hljs-variable">$result</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">free</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">"Error: "</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>

3.コードを説明します

  1. データベース接続:最初に、新しいmysqli()を使用してデータベースへの接続を作成します。

  2. クエリ実行:クエリは$ mysqli-> query()を介して実行され、ユーザーテーブルのIDユーザー名電子メール、および年齢フィールドをクエリします。

  3. field_seekを使用してフィールドポインターを移動しますfield_seek(2)を呼び出して、結果のポインターを電子メールフィールドの位置に移動します(インデックス値は2)。現時点では、 mysqli_fetch_assocは電子メールフィールドから関連するデータのみを返します。

  4. データを取得して表示mysqli_fetch_assoc()を介してデータの各行を取得し、電子メールフィールドの内容を表示します。 Field_Seekは後続のfetch_assoc呼び出しに有効であるため、データを取得するためにどのフィールドを柔軟に制御できることに注意してください。

  5. リリース結果セット$ result-> free()は、クエリ結果セットをリリースするために使用されます。

  6. データベース接続を閉じます$ mysqli-> close()データベース接続を閉じます。

4。注意すべきこと

  • Field_Seekメソッドは、現在の結果セットに基づいて、後続のすべてのfetch_*関数に影響するため、使用するように注意してください。使用する前に、クエリ結果の構造とフィールドの順序を理解していることを確認してください。

  • mysqli_fetch_assoc()現在の行のすべてのフィールドデータを含む連想配列を返します。フィールド名は配列のキーです。

  • クエリ結果セットに複数のフィールドが含まれ、特定の順序で一部のフィールドのデータを取得する場合、 mysqli_fetch_assocの場合、 field_seekを介してポインターの動きを制御して正しいフィールドを取得できます。

5。概要

mysqli_result :: field_seekmysqli_fetch_assocを使用すると、クエリの結果をより柔軟に操作できるようになります。 Field_Seekによってフィールドポインターの位置を設定することにより、特定のフィールドのデータを選択的に取得できます。この組み合わせは、特にクエリ結果の一部のフィールドをスキップする必要がある場合、またはフィールドの順序を柔軟に調整する必要がある場合に特に役立ちます。