【PHP】MySQLのレコードを削除する
公開日:
更新日:
カテゴリー: PHP
PHPからMySQLにアクセスして指定のレコード(データ)を削除する方法を説明します。
PHPからMySQLに接続してレコードを削除
PHPからMySQLへの接続・処理はPDOクラスを使用します。
PDOクラスの説明は【PHP】MySQLにレコードを挿入するで行っていますのでそちらを参照して下さい。
オブジェクトの作成
まずはオブジェクトの作成を行います。
//PDOオブジェクトの作成 $pdo = new PDO("mysql:host=MySQLサーバのホスト名;dbname=データベース名;charset=utf8;", "データベース接続のID", "データベース接続のパスワード");
SQLの準備
次にSQLの準備を行います。
//SQLの準備 $st = $pdo->prepare("DELETE FROM テーブル名 WHERE フィールド名=? ");
削除するレコードがある「テーブル名」と削除するレコードを指定する「フィールド名」を決めます。
「?」は文字化けや記入ミスではなくプレースホルダといいます。
SQLの発行
そして最後にSQLの発行を行います。
//SQLの発行 $st->execute(array("○○○"));
「○○○」のデータ(値)が先ほどのプレースホルダ「?」に該当します。
レコードを削除するプログラム
MySQLのレコードを削除するサンプルプログラムを書いてみたいと思います。
環境の整理
説明のために環境を整理しておきたいと思います。
データベースに「sample」というテーブルを作成し、そこに「id」「name」「sex(性別)」という3つのフィールドを作成します。
そして以下のレコードがあるとします。
id | name | sex |
---|---|---|
1 | 大野智 | 男 |
2 | 小嶋陽菜 | 女 |
3 | 櫻井翔 | 男 |
4 | 川栄李奈 | 女 |
5 | 相葉雅紀 | 男 |
6 | 島崎遥香 | 女 |
7 | 二宮和也 | 男 |
8 | 高橋みなみ | 女 |
9 | 松本潤 | 男 |
10 | 横山由依 | 女 |
レコードの削除
「name」フィールドに「川栄李奈」をもつレコードを削除したいと思います。
//PDOオブジェクトの作成 $pdo = new PDO("mysql:host=MySQLサーバのホスト名;dbname=データベース名;charset=utf8;", "データベース接続のID", "データベース接続のパスワード"); //SQLの準備 $st = $pdo->prepare("DELETE FROM sample WHERE name=? "); //SQLの発行 $st->execute(array("川栄李奈"));
これを実行すれば、上記表の4番目のレコードが削除されます。
なお、PDOでMySQLに接続する際には、【PHP】PDOでMySQLに接続する際、必ず例外処理(try,catch)を行うにあるように例外処理を行うようにしてください。
あわせて読んでほしい!
コメント
まだコメントはありません。
コメントフォーム