【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)を行うにあるように例外処理を行うようにしてください。

 

あわせて読んでほしい!

 

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント