Developer

【PHP応用】PDO⑪ DELETE文
2021.08.31
Lv1

【PHP応用】PDO⑪ DELETE文

PDO⑪ DELETE文

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

■プログラム

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

pdo_delete.php

<?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文を実行します。

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

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

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

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

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

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

■まとめ

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