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