Developer

【PHP応用】PDO⑪ DELETE文
2021.08.31
Lv2

【PHP応用】PDO⑪ DELETE文

PDO⑪ DELETE文

今回はDELETE文について紹介します。
使い方はUPDATE文とほとんど変わりません。
簡単な例を見てみましょう。

■プログラム

idが2のレコードを削除してみます。
現在の値は以下のようになっています。(UPDATE文の続きです)

pdo_delete.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
    try {
 
        // 接続処理
        $dsn = 'mysql:host=localhost;dbname=sample_db';
        $user = 'root';
        $password = '';
        $dbh = new PDO($dsn, $user, $password);
 
        // DELETE文を発行
 
        $id = 2; // DELETEするレコードのID
 
        $sql = "DELETE FROM members WHERE id = :id";
        $stmt = $dbh->prepare($sql);
 
        $stmt->bindValue(":id", $id); // 削除したいIDでバインド
        $stmt->execute(); // DELETE文実行
 
        print("レコードを削除しました");
 
        // 接続切断
        $dbh = null;
 
 
    } catch (PDOException $e) {
        print $e->getMessage() . "<br/>";
        die();
    }
?>

プログラム実行後

■解説

基本的には削除したい主キー(今回はID)をWHERE句でバインドし、DELETE文を実行します。

1
$sql = "DELETE FROM members WHERE id = :id";

実際にレコードを削除する場合には、

今回のようにDELETE文を使用した完全削除(物理削除)を行わずに

削除フラグを管理するカラムを用意し、切り替えることによって

レコードの無効化(論理削除)することが多いため

他のSQLと比べると使用頻度は少ないかもしれません。

■まとめ

  • 主キーを指定し、DELETE文を実行する
  • 他のSQLと比べると使用頻度は少ない

PHPWEBプログラミング講座 連載目次リンク

PHPWEBプログラミング講座 連載目次