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

SQL見るだけクエリ#215 関数を活用したデータベースからのデータ取得

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

関数を活用したデータベースからのデータ取得方法について解説をしてみようと思います。

この記事を読むと(約5分)
関数を活用したデータベースからのデータ取得方法についてイメージできます。

データ取得関数の作成

require_once 'dbconnect.php'; // dbconnectクラスのファイルをインクルードする

function getListData() {
  try {
    $db = new dbconnect(); // dbconnectクラスのインスタンスを作成

    $query = "SELECT * FROM your_table"; // 取得するテーブル名を指定

    $stmt = $db->prepare($query);
    $stmt->execute();

    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

    return $results;
  } catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
    return [];
}
}

// 使用例
$dataList = getListData();

foreach ($dataList as $row) {
  echo "ID: " . $row['id'] . "<br>";
  echo "Name: " . $row['name'] . "<br>";
  echo "Email: " . $row['email'] . "<br>";
  // 他のカラムも同様に表示
  echo "<hr>";
}

このPHPコードは、データベースからテーブル内のデータを取得し、それをHTML出力して表示するためのコードです。以下にコードの概要を解説します。

1.require_once 'dbconnect.php';:
他のファイル(ここでは 'dbconnect.php')で定義されたクラスや関数をこのファイル内で使用できるように、外部ファイルをインクルードしています。データベースへの接続を確立するためのクラスや関数が含まれています。

2.function getListData() { ... }:
getListData という名前の関数が定義されています。この関数は、データベースからデータを取得して配列として返す役割を果たします。

  • try { ... }: 例外処理の開始。データベースからデータを取得する処理が含まれます。`dbconnect` クラスのインスタンスを作成し、SQLクエリを使用してデータベースからデータを取得しています。
  • $stmt = $db->prepare($query);: データベースに対するSQLクエリを準備しています。
  • $stmt->execute();: 準備されたSQLクエリを実行しています。
  • $results = $stmt->fetchAll(PDO::FETCH_ASSOC);: 取得したデータを連想配列として取得しています。
  • return $results;: 取得したデータを関数の呼び出し元に返しています。
  • catch (PDOException $e) { ... }: 例外処理。データベース操作中にエラーが発生した場合、エラーメッセージを表示し、空の配列を返します。

3.// 使用例:
関数の使用例が以下に示されています。`getListData` 関数を呼び出してデータを取得し、取得したデータをループしてHTMLとして出力しています。

このコードは、データベース内のテーブルからデータを取得して、それをHTMLフォーマットで表示する基本的な機能を提供しています。ただし、実際の動作にはデータベースの接続情報やテーブル構造などの詳細が必要です。また、セキュリティ上の考慮や最適化についても考慮する必要があります。

SQLの使いどころ

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

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

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

KK

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