SELECT文を実行する

 データベースからSQL文の「SELECT」文を使ってデータベースからデータを取得する方法を見てみましょう。PDOクラスの「query」メソッドを使ってデータを取得します。

クラス名 PDO
メソッド名 query
パラメーターリスト
パラメター名 説明
string $statement SQL文
返り値
PDOStatement 結果セットを表すオブジェクト。失敗した場合はFALSE。
queryメソッドの仕様

○ ファイル

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

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

サンプルダウンロード

○ プログラム

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

QueryTest.php

  1. <!DOCTYPE html>
  2. <html lang="ja">
  3.  <meta charset="utf-8">
  4.  <head>
  5.   <title>SELECT文実行</title>
  6.  </head>
  7.  <body>
  8. <?php
  9. try{
  10.  //データベースに接続する
  11.  $pdo = new PDO('mysql:host=' . $host . ';dbname=' . $dbname .';charset=utf8;',
  12.   $username,
  13.   $password);
  14.  //データを取得する
  15.  $result = $pdo -> query('SELECT * FROM users;');
  16.  //PDOStatementオブジェクトの情報を取得する
  17.  print('queryStringプロパティ');
  18.  var_dump($result -> queryString);
  19.  //取得した結果の列数を取得する
  20.  print('列数');
  21.  var_dump($result -> columnCount());
  22.  //取得した結果の行数を取得する
  23.  print('行数');
  24.  var_dump($result -> rowCount());
  25. }catch(PDOException $e){
  26.  var_dump($e -> getMessage());
  27. }
  28. //データベースを閉じる
  29. $result = null;
  30. $pdo = null;
  31. ?>
  32.  </body>
  33. </html>

○ 実行結果

実行結果
実行結果

○ 解説

 22行目で、PDOオブジェクトのqueryメソッドを使ってSQL文を実行しています。パラメーターにusersテーブルを取得するSQL文を、文字列としてセットしています。返り値としてPDOStatementオブジェクトを取得できます。

 26行目では、PDOStatementオブジェクトの「queryString」プロパティーを参照して、実行したSQL文を取得しています。30行目では、PDOStatementオブジェクトの「columnCount」メソッドを使って、取得した結果の列数を取得しています。34行目では、PDOStatementオブジェクトの「rowCount」メソッドを使って、取得した結果の行数を取得しています。

 40行目では、PDOStatementオブジェクト変数にnullをセットしています。これにより、データベースの結果セットが閉じられ、プログラムから結果セットを参照できなくなります。

 PDOStatementオブジェクトの別のメソッドを使って実際にデータを取得して、PHPプログラムで使用することになります。

前へ   次へ