PHP データベース関連

[PHP] MySQLのレコードをDELETEする

2015年9月21日

MySQLのレコードをDELETEするサンプルです。

サンプルソース

以下のようなテーブルを想定します。

【testテーブル】
項目名 制約
ID INT(3) PK
VAL1 VARCHAR(50)
VAL2 VARCHAR(50)

例)MySQLのレコードをDELETEする


<?php
 try{
   //DBコネクションを取得する
   $dsn = 'mysql:host=localhost;dbname=testdb;charset=utf8';
   $dbid = 'root';
   $dbpw = 'pass';
   $conn = new PDO($dsn, $dbid, $dbpw,
           array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

   //トランザクションを開始する
   $conn->beginTransaction();

   //パラメータ値
   $id = "777";

   //DELETE処理
   $sql = "DELETE FROM test WHERE ID = :id";
   $stmt = $conn->prepare($sql);
   $stmt->bindParam(':id', $id, PDO::PARAM_STR);
   $stmt->execute();

   //削除件数を取得して表示する
   $deleteCount = $stmt->rowCount();
   print "削除件数 -> ".$deleteCount;

   //コミット
   $conn->commit();

 }catch(ErrorException $ex){
   echo($ex->getMessage());

 }catch(PDOException $ex){
   echo($ex->getMessage());

 }

備考

  • bindValueに指定する値は変数である必要があります。
    (例えば、上記19行目の$idを"AAA"みたいな固定値で指定するのはダメです。)

関連記事

-PHP, データベース関連
-