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

SQL見るだけクエリ#067 PHPでAPIを作成する方法 その2 複数レコード

記入日:2023-03-16 編集日:2023-03-16

SQL見るだけクエリ。PHPでAPIを作成する方法 その2 複数レコード。

この記事を読むと(約5分)
PHPで簡単なAPIを作成する方法がイメージできます。今回は複数レコードの場合です。

 

例えば、productsテーブルから指定されたカテゴリのデータを返すAPIを作成するとしましょう。 その場合、以下のようなコードが必要になります。

// リクエストからパラメーターを取得する
$category = $_GET["category"];

// パラメーターが正しいかチェックする
if (isset($category)) {
    // データベースに接続する
    $db = new PDO("mysql:host=localhost;dbname=sample", "root", "");
    
    // SQL文を準備する
    $sql = "SELECT * FROM products WHERE category = :category";
    
    // ステートメントを作成する
    $stmt = $db->prepare($sql);
    
    // パラメーターをバインドする
    $stmt->bindValue(":category", $category, PDO::PARAM_STR);
    
    // SQL文を実行する
    $stmt->execute();
    
    // 結果を配列として取得する
    $results = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // レスポンスをJSON形式で返す
    header("Content-Type: application/json");
    echo json_encode(["products" => $results]);
} else {
    // エラーメッセージを返す
    header("Content-Type: application/json");
    echo json_encode(["error" => "Invalid parameters"]);
}

このコードの場合、categoryパラメーターに応じて、productsテーブルからレコードを取得して、JSONデータに変換して返します。例えば、categoryが"book"だとしたら、以下のようなJSONデータが返ってきます。

{
  "products": [
    {
      "id": 1,
      "name": "PHP入門",
      "price": 2000,
      "category": "book"
    },
    {
      "id": 2,
      "name": "PHP実践",
      "price": 3000,
      "category": "book"
    },
    {
      "id": 3,
      "name": "PHP高度",
      "price": 4000,
      "category": "book"
    }
  ]
}

SQLの使いどころ

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

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

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

KK

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