UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#216 データベースから全データを取得するクラスの作成

記入日:2023-08-12 編集日:2023-08-12

データベースから全データを取得するクラスの作成方法について解説をしてみようと思います。

この記事を読むと(約5分)
データベースから全データを取得するクラスの作成方法についてイメージできます。

全データを取得するクラスの作成

class GetAllData {
  private $pdo;
  private $table_name;
  public function __construct($table_name) {
    $this->pdo = (new DatabaseConnect())->getPdo();
    $this->table_name = $table_name;
  }

  public function getAllData() {
    try {
      // SQL文を作成
      $sql = "SELECT * FROM " . $this->table_name;
      // $sql = "SELECT * FROM " . $this->table_name . " WHERE status = 1";
      // SQL文を実行する準備
      $stmt = $this->pdo->prepare($sql);
      // SQLを実行
      $stmt->execute();
      // レコードの取得
      $result = $stmt->fetchAll();
      // 結果を返す
      return $result;
    } catch (PDOException $e) {
      return false;
    }
  }
}

このコードは、PHP言語を用いてデータベースから情報を取得するためのプログラムを示しています。具体的には、データベース内の特定のテーブルから全ての行(レコード)を取得するための方法を提供しています。これにより、データベース内の情報を効果的に抽出することができます。

プログラムの中心となるのは、GetAllData というクラスです。このクラスは、データベース接続を管理し、データの取得手続きを提供します。クラス内で使用される $pdo は、PHP Data Objects(PDO)というモジュールを介してデータベースに接続するためのオブジェクトです。また、$table_name は、取得したいデータが格納されているデータベースのテーブル名を保持します。

クラスのコンストラクタ __construct は、$table_name を引数として受け取り、データベースへの接続を確立し、指定されたテーブル名をセットします。こうすることで、このクラスのインスタンスを作成する際に、データベースと対象テーブルを指定できるようになります。

getAllData 関数は、実際にデータの取得を行います。まず、try ブロック内でデータベース操作を試みます。具体的には、以下の手順を踏んでデータを取得します:

  1. SQLクエリを生成し、特定のテーブルから全てのカラムを選択するように設定します。
  2. 2. プリペアドステートメントを用いてSQLクエリをデータベースに送信する準備を行います。
  3. 3. プリペアドステートメントを実行して、データベースからデータを取得します。取得したデータは配列として保持されます。

fetchAll メソッドを使うことで、クエリの結果から全ての行(レコード)を配列として取得できます。最終的に、この関数は取得したデータの配列を返します。

もしデータベース操作中にエラーが発生した場合、catch ブロックでそのエラーをキャッチし、簡易的に false を返すことでエラーが発生したことを示します。ただし、実際の運用ではエラーメッセージの詳細を取得し、適切な対処を行うことが重要です。

このプログラムは、データベースからデータを取得する際の手順を簡素化し、再利用可能なコードを提供します。

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。