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と比べると使用頻度は少ない
