データの挿入、更新、削除

PHPでのデータベース操作において、「データの挿入(INSERT)」「更新(UPDATE)」「削除(DELETE)」は、データベースの内容を変更する基本的な操作です。以下では、MySQLを使った例とともに、それぞれの操作について詳細に説明します。


1. データの挿入(INSERT)

データベースのテーブルに新しいレコードを追加するには、INSERT INTO文を使用します。

例(mysqli使用):

php
<?php $conn = new mysqli("localhost", "username", "password", "database"); // エラー確認 if ($conn->connect_error) { die("接続失敗: " . $conn->connect_error); } // データの挿入 $sql = "INSERT INTO users (name, email) VALUES ('田中太郎', 'taro@example.com')"; if ($conn->query($sql) === TRUE) { echo "新しいレコードが追加されました"; } else { echo "エラー: " . $conn->error; } $conn->close(); ?>

セキュリティ対策:

SQLインジェクションを防ぐため、プリペアドステートメントを使用することが推奨されます。


2. データの更新(UPDATE)

既存のデータを変更するには、UPDATE文を使用します。

例(PDO使用):

php
<?php $pdo = new PDO("mysql:host=localhost;dbname=database", "username", "password"); // プリペアドステートメントを使った安全な更新 $stmt = $pdo->prepare("UPDATE users SET email = :email WHERE name = :name"); $stmt->execute([':email' => 'new_email@example.com', ':name' => '田中太郎']); echo "レコードが更新されました"; ?>

注意点:

  • WHERE句を忘れると、全レコードが更新される可能性があるため注意が必要です。


3. データの削除(DELETE)

特定のレコードを削除するには、DELETE FROM文を使用します。

例(mysqli + プリペアドステートメント):

php
<?php $conn = new mysqli("localhost", "username", "password", "database"); $stmt = $conn->prepare("DELETE FROM users WHERE name = ?"); $stmt->bind_param("s", $name); $name = "田中太郎"; $stmt->execute(); echo "レコードが削除されました"; $stmt->close(); $conn->close(); ?>

注意点:

  • 更新同様、WHERE句の記述を忘れるとすべてのデータが削除されてしまうため注意が必要です。


まとめ

操作 SQL構文例 主な用途
INSERT INSERT INTO users (name, email) VALUES (…) 新規データの追加
UPDATE UPDATE users SET email = … WHERE name = … 既存データの修正
DELETE DELETE FROM users WHERE name = … 特定データの削除

これらの操作では、セキュリティと安定性のためプリペアドステートメントの使用が推奨されます。

生成日:2025/05/03