PHP はクエリ結果を 2 次元配列に変換します

WBOY
リリース: 2023-05-05 20:23:07
オリジナル
533 人が閲覧しました

php は、Web アプリケーションの開発によく使用される人気のあるプログラミング言語です。データベースへのクエリは PHP でよく使用される操作の 1 つであり、クエリ結果は配列の形式で返される必要があります。この記事では、クエリ結果を 2 次元配列に変換する方法について説明します。

1. クエリ結果

PHP では、mysqli または PDO を使用してデータベースに接続し、クエリ操作を行います。以下は、mysqli クエリを使用したサンプル コードです:

$mysqli = new mysqli("localhost", "user", "password", "database");
$sql = "SELECT name, age FROM users";
$result = $mysqli->query($sql);
ログイン後にコピー

PDO を使用したサンプル コード:

$pdo = new PDO("mysql:host=localhost;dbname=database", "user", "password");
$sql = "SELECT name, age FROM users";
$result = $pdo->query($sql);
ログイン後にコピー

mysqli であっても PDO であっても、クエリ ステートメントを実行すると、結果セット オブジェクトが返されます。

2. 結果を配列に変換する

クエリ結果を配列に変換するには 2 つの方法があります。1 つは、mysqli または PDO に付属の fetch 関数を使用して行を変換する方法です。 1 つ目は、結果セット全体を一度に配列に取得することです。

  1. fetch() メソッド

fetch メソッドは、結果セットからデータ行を取得し、ポインタを 1 行下に移動するために使用されます。 fetch() メソッドをループ内で呼び出して、結果セット全体を取得できます。以下はサンプル コードです:

// mysqli示例代码
$rows = array();
while ($row = $result->fetch_assoc()) {
    $rows[] = $row;
}

// PDO示例代码
$rows = array();
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
    $rows[] = $row;
}
ログイン後にコピー

上記のコードは、fetch_assoc() または FETCH_ASSOC を使用して連想配列を取得します。また、fetch_array() または FETCH_BOTH を使用して、数値と関連キーを含む配列を取得することもできます。 ) または FETCH_OBJ はオブジェクトを返します。

  1. fetch_all() メソッド

fetch_all() メソッドは、結果セット全体を一度に配列にフェッチします。 fetch_all() は PDO の関数ですが、mysqli では get_result() を使用して結果セット オブジェクトを取得する必要があります。以下にサンプルコードを示します。

// mysqli示例代码
$rows = $result->get_result()->fetch_all(MYSQLI_ASSOC);

// PDO示例代码
$rows = $result->fetch_all(PDO::FETCH_ASSOC);
ログイン後にコピー

上記のコードは、結果セットを一度に取り出し、結果セット内のすべてのデータを連想配列形式の 2 次元配列に格納します。

3. 概要

上で紹介した 2 つのメソッドには、それぞれ独自の長所と短所があります。 fetch() メソッドを使用すると、結果を行ごとに処理でき、より柔軟ですが、データの各行を処理するための多くのコード。 fetch_all() メソッドは結果全体を一度に取得することができ、コードはシンプルですが、データ量が多すぎるとメモリを圧迫する可能性があります。

実際の開発では、状況に応じて適切な方法を選択できます。クエリ結果セットが小さい場合は、 fetch() メソッドを使用できますが、そうでない場合は、 fetch_all() メソッドを使用することをお勧めします。

以上がPHP はクエリ結果を 2 次元配列に変換しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート