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

SQL見るだけクエリ#238 PHPでデータベースへのINSERTクエリを実行するためのクラス

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

PHPでデータベースへのINSERTクエリを実行するためのクラスに関して解説をしてみようと思います。

この記事を読むと(約5分)
PHPでデータベースへのINSERTクエリを実行するためのクラスを使用する方法をイメージできます。

データベースへのINSERTクエリを実行するためのクラス

PHPでデータベースへのINSERTクエリを実行するためのクラス「DatabaseInsert」を定義しています。 以下にコードの概要を解説します。

class DatabaseInsert {
  private $db;

  public function __construct($db) {
    $this->db = $db;
  }

  public function insert($table, $data) {
    $columns = implode(', ', array_keys($data));
    $values = "'" . implode("', '", $data) . "'";

    $query = "INSERT INTO $table ($columns) VALUES ($values)";

    $result = $this->db->query($query);

    if (!$result) {
      throw new Exception("Insert query failed: " . $this->db->error);
    }

    return $this->db->insert_id;
  }
}

// このクラスを使用する例
$db = new YourDatabaseConnection(); // あなたのデータベース接続クラスに合わせて変更してください
$insert = new DatabaseInsert($db);

// 例: ユーザーを新しく挿入
$newUserId = $insert->insert('users', [
  'username' => 'john_doe',
  'email' => 'john@example.com',
  'status' => 'active',
]);

1. DatabaseInsert クラスの定義:

  • private $db;: クラス内で使用するデータベース接続を格納するプライベートプロパティです。
  • public function __construct($db): コンストラクタメソッドで、データベース接続オブジェクトを受け取り、それを $db プロパティに格納します。
  • public function insert($table, $data): データベースにデータを挿入するためのパブリックメソッドです。引数としてテーブル名 $table と挿入するデータの連想配列 $data を受け取ります。

2. insert メソッド内の処理:

  • $columns 変数: $data 配列のキーをカンマ区切りの文字列に連結します。これはINSERTクエリの列名として使用されます。
  • $values 変数: $data 配列の値をシングルクォートで囲んでカンマ区切りの文字列に連結します。これはINSERTクエリの値として使用されます。
  • $query 変数: INSERT INTO クエリを生成し、テーブル名と列名、値を含んでいます。
  • $result 変数: 生成したクエリをデータベースに対して実行し、結果を格納します。
  • クエリ実行結果が失敗した場合、Exception をスローしてエラーメッセージを表示します。
  • クエリが成功した場合、挿入された行のID(通常は自動生成されるプライマリキーの値)を返します。

3. クラスの使用例:

  • データベース接続クラスをインスタンス化し、それを $db 変数に格納します。この部分はデータベース接続に合わせて変更する必要があります。
  • DatabaseInsert クラスをインスタンス化し、それを $insert 変数に格納します。
  • $insert オブジェクトを使用して、insert メソッドを呼び出し、新しいユーザーデータを指定のテーブルに挿入します。挿入された行のIDが返され、それを $newUserId 変数に格納します。

このコードは、データベースへのINSERT操作をより簡単に実行するために使用できる再利用可能なクラスを提供しています。データベース接続は YourDatabaseConnection クラスに依存しており、その部分は特定のデータベース接続方法に合わせて変更する必要があります。

SQLの使いどころ

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

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

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

KK

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