PDOStatement->fetchAll()とは? わかりやすく解説

Weblio 辞書 > コンピュータ > PHP関数リファレンス > PDOStatement->fetchAll()の意味・解説 

PDOStatement->fetchAll()

(PHP 5 >= 5.1.0)
PDOStatement->fetchAll() — 全ての結果行を含む配列を返す

説明

class PDOStatement {
array fetchAll ( [int fetch_style [, int column_index]] )
}

パラメータ

fetch_style
PDOStatement->fetch() に文章化されているような 返される配列の内容を制御します。デフォルトは PDO_FETCH_BOTH です。
結果セットから単一カラムの全ての値を含む配列を返す場合、 PDO::FETCH_COLUMN を指定します。 column-index パラメータにどのカラムを返すかを 指定することができます。
結果セットから単一カラムの一意な値のみ取得する場合、 PDO::FETCH_UNIQUE をビット OR した PDO::FETCH_COLUMN を指定します。
指定したカラムの値によってグループ化した連想配列を返す場合、 PDO::FETCH_GROUP をビット OR した PDO::FETCH_COLUMN を指定します。
column_index
fetch_stylePDO::FETCH_COLUMN の場合に、 ここで指定した (0 からはじまる) カラム番号の値を返します。 デフォルトは 0 です。

返り値

PDOStatement->fetchAll() は、 結果セットに残っている全ての行を含む配列を返します。 この配列は、カラム値の配列 もしくは各カラム名に対応するプロパティを持つオブジェクトをして 各行を表します。
大きな結果セットをフェッチするためにこのメソッドを使用することは、 システムとネットワークリソースに大量の要求を行うことになります。 PHP で全てのデータ処理と操作を行うよりも、データベースサーバ側で 結果セットを操作することを検討してください。例えば、PHP で処理を行う前に SQL で WHERE 句や SORT BY 句を使用し、結果を制限することです。

例 1680. 結果セットに残っている全ての行をフェッチする
<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* 結果セットに残っている全ての行をフェッチする */
print("Fetch all of the remaining rows in the result set:\n");
$result = $sth->fetchAll();
print_r($result);
?>
上の例の出力は以下となります。

Fetch all of the remaining rows in the result set:
Array
(
    [0] => Array
        (
            [NAME] => pear
            [0] => pear
            [COLOUR] => green
            [1] => green
        )

    [1] => Array
        (
            [NAME] => watermelon
            [0] => watermelon
            [COLOUR] => pink
            [1] => pink
        )

)

    

例 1681. 結果セットから単一カラムの全ての値を取得する
以下の例は、 SQL ステートメント自身が行毎に複数のカラムを返す場合において、 どのように結果セットから単一カラムの全ての値を取得するかを 例示しています。
<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* 最初のカラムの全ての値を取得する */
$result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);
var_dump($result);
?>
上の例の出力は以下となります。

Array(3)
(
    [0] =>
    string(5) => apple
    [1] =>
    string(4) => pear
    [2] =>
    string(10) => watermelon
)

    

例 1682. 単一カラムによる全ての値のグループ化
以下の例は、どのように結果セット中の特定のカラムの値によって グループ化された連想配列を返すかを例示しています。 その配列は 3 つのキーを有します。値 applepear は異なる 2 つの異なる色を有する配列として返され、 一方 watermelon は 1 つの色のみ有する配列として返されます。
<?php
$insert = $dbh->prepare("INSERT INTO fruit(name, colour) VALUES (?, ?)");
$insert->execute('apple', 'green');
$insert->execute('pear', 'yellow');

$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* 最初のカラムの値によってグループ化する */
var_dump($sth->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP));
?>
上の例の出力は以下となります。

array(3) {
  ["apple"]=>
  array(2) {
    [0]=>
    string(5) "green"
    [1]=>
    string(3) "red"
  }
  ["pear"]=>
  array(2) {
    [0]=>
    string(5) "green"
    [1]=>
    string(6) "yellow"
  }
  ["watermelon"]=>
  array(1) {
    [0]=>
    string(5) "green"
  }
}


    


参考

PDO->query()
PDOStatement->fetch()
PDOStatement->fetchColumn()
PDO->prepare()
PDOStatement->setFetchMode()



このページでは「PHP関数リファレンス」からPDOStatement->fetchAll()を検索した結果を表示しています。
Weblioに収録されているすべての辞書からPDOStatement->fetchAll()を検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からPDOStatement->fetchAll() を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「PDOStatement->fetchAll()」の関連用語

PDOStatement->fetchAll()のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



PDOStatement->fetchAll()のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2024 by the PHP Documentation Group.

©2024 GRAS Group, Inc.RSS