
【6日でできるPHP入門】更新と削除
データベース内のデータは、必要に応じて変更(更新)したり、不要なものを削除したりすることが求められます。
MySQLでは、UPDATE文とDELETE文を使ってテーブルの内容を自在に操作できます。
本記事では、SQL構文や実践例、PHPからの操作例までを丁寧に解説します。

1.レコードの更新(UPDATE文)
1.1. レコードの値を変更する
UPDATE文を使うと、テーブル内の特定レコードの値を変更できます。
書式は次の通りです。
| 構文 | 説明 |
|---|---|
| UPDATE データベース.テーブル名 SET カラム=値… WHERE 条件; | 条件に合うレコードの値を変更 |
例:book_idが101の書籍タイトルを「PHP超入門」に変更
「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。
UPDATE bookshop.books SET title = 'PHP超入門' WHERE book_id = 101;
実行後のテーブル
「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。
SELECT * FROM bookshop.books;
| book_id | title | author | stock |
|---|---|---|---|
| 101 | PHP超入門 | 田中一郎 | 5 |
| 102 | MySQL実践 | 佐藤花子 | 3 |
| 103 | Web開発の基礎 | 山本次郎 | 7 |
1.2. 複数レコードの一括更新
条件に一致する複数レコードを一度に更新できます。
例:在庫数(stock)が3の本の著者名をすべて「未登録」に変更
「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。
UPDATE bookshop.books SET author = '未登録' WHERE stock = 3;
実行後のテーブル
「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。
SELECT * FROM bookshop.books;
| book_id | title | author | stock |
|---|---|---|---|
| 101 | PHP超入門 | 田中一郎 | 5 |
| 102 | MySQL実践 | 未登録 | 3 |
| 103 | Web開発の基礎 | 山本次郎 | 7 |
2.レコードの削除(DELETE文)
2.1. 条件を指定してレコードを削除する
DELETE文で条件に合致するデータを削除できます。
| 構文 | 説明 |
|---|---|
| DELETE FROM データベース.テーブル名 WHERE 条件; | 条件に合うデータを削除 |
例:book_idが101の本を削除
「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。
DELETE FROM bookshop.books WHERE book_id = 101;
実行後のテーブル
「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。
SELECT * FROM bookshop.books;
| book_id | title | author | stock |
|---|---|---|---|
| 102 | MySQL実践 | 未登録 | 3 |
| 103 | Web開発の基礎 | 山本次郎 | 7 |
2.2. 条件を省略して全レコード削除
WHERE句なしでDELETE文を実行すると、テーブルの全データを一括削除します。
「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。
DELETE FROM bookshop.books;
実行後:テーブル内のデータがすべて空になります。
「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。
SELECT * FROM bookshop.books;
3.PHPから更新・削除を実行する例
3.1. データベースのrootユーザのパスワードの設定
MAMPインストール直後は、rootユーザにパスワードが設定されていません。
rootユーザにパスワードを設定していない場合は、データベースのrootユーザのパスワードの設定を行う必要があります。
1.「ユーザアカウント」タブに切り替え、「権限を編集」のリンクをクリックします。

2.rootユーザーのパスワードを設定します。
「Change password」タブを選択します。

ここでは、練習用にrootユーザーのパスワードに「root」と設定します。
「パスワード」と「再入力」に「root」と入力したら、「実行」ボタンをクリックします。

3.2. データの挿入とテーブル確認
テーブルが空になっているため、データを挿入します。
※データベース名を省略できるように「CREATE TABLE」の前に「USE bookshop;」を指定しています。
「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。
USE bookshop;
INSERT INTO books (book_id, title, author, stock) VALUES
(101, 'PHP入門', '田中一郎', 5),
(102, 'MySQL実践', '佐藤花子', 3),
(103, 'Web開発の基礎', '山本次郎', 7);
実行後のテーブル
「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。
SELECT * FROM bookshop.books;
実行結果

| book_id | title | author | stock |
|---|---|---|---|
| 101 | PHP入門 | 田中一郎 | 5 |
| 102 | MySQL実践 | 佐藤花子 | 3 |
| 103 | Web開発の基礎 | 山本次郎 | 7 |
3.3. レコードの更新
ファイル名: lesson68_1.php
<?php
$mysqli = new mysqli('localhost', 'root', 'root', 'bookshop');
if ($mysqli->connect_error) {
echo "接続失敗: " . $mysqli->connect_error;
exit;
}
$mysqli->query("UPDATE books SET stock = 10 WHERE book_id = 103");
echo "book_id=103の在庫数を10に更新しました。";
$mysqli->close();
?>実行結果

実行後のテーブル
「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。
SELECT * FROM bookshop.books;
| book_id | title | author | stock |
|---|---|---|---|
| 101 | PHP入門 | 田中一郎 | 5 |
| 102 | MySQL実践 | 佐藤花子 | 3 |
| 103 | Web開発の基礎 | 山本次郎 | 10 |
3.4. レコードの削除
ファイル名: lesson68_2.php
<?php
$mysqli = new mysqli('localhost', 'root', 'root', 'bookshop');
if ($mysqli->connect_error) {
echo "接続失敗: " . $mysqli->connect_error;
exit;
}
$mysqli->query("DELETE FROM books WHERE stock < 4");
echo "在庫が3以下の本を削除しました。";
$mysqli->close();
?>実行結果

実行後のテーブル
「クエリボックス」に以下のSQLクエリを入力して「実行」ボタンをクリックします。
SELECT * FROM bookshop.books;
まとめ
- UPDATE文はレコードの値を部分的に変更、DELETE文は条件に合致するレコードや全データの削除に使います。
- WHERE句で条件を絞るのが基本。WHEREを省略すると全件対象になるため注意が必要です。
- PHPからも簡単に更新・削除が可能。必ず実行結果や影響範囲を確認して安全に操作しましょう。
- データ操作の基礎を押さえて、実践的なWeb開発や管理に活用してください!
