データベースからデータを取得する

 SELECT文が実行できるようになりました。次に、実行した結果を利用する方法を確認しましょう。前節ではPDOStatementオブジェクトが実行結果を表すオブジェクトであることを学習しました。このオブジェクトは「Traversable」インターフェイスを実装しているので、foreach文を使って取得したデータ1行1行を取得することができます。また、データを取得するためのメソッドを利用することもできます。

○ ファイル

 「QueryTest.php」ファイルをコピーして、次のPHPファイルをプロジェクトに追加してください。

ファイルの種類 PHPファイル
ファイル名 TraversableTest.php

サンプルダウンロード

○ プログラム

 次のようにプログラムを記述してください。

TraversableTest.php

  1. try{
  2.  //データベースに接続する
  3.  $pdo = new PDO('mysql:host=' . $host . ';dbname=' . $dbname .';charset=utf8;',
  4.   $username,
  5.   $password);
  6.  //SQL文を実行する
  7.  $result = $pdo -> query('SELECT * FROM users;');
  8.  //データを取得する
  9.  foreach($result as $row){
  10.   var_dump($row);
  11.  }
  12. }catch(PDOException $e){
  13.  var_dump($e -> getMessage());
  14. }

○ 実行結果

実行結果
実行結果

○ 解説

 25行目で、foreach文を使ってPDOStatementオブジェクトをループしています。これで、結果の1行分を取得できます。26行目で「var_dump」関数を使って変数のデータと型を確認しています。1行分のデータにアクセスするための方法として、0から始まるインデックスか、列名でアクセスすることができることを確認できます。

前へ   次へ