レシピ

データベース MySQL

mysqliでデータを削除(DELETE)

  • このエントリーをはてなブックマークに追加

今回はMySQLiとSQLのDELETE文を使って、データベースにあるデータを削除する方法を解説します。

この記事のポイント

  • mysqliでMySQLデータベースにあるデータを削除する
  • 具体的なコード例で処理内容が理解できる

目次

特定のデータを削除する

mysqli_query関数とDELETE文を使って、接続したデータベースにある特定のデータを削除していきます。
テーブルは「mysqliでテーブルを作成(CREATE TABLE)」で作成したデータベースと同じものを使います。

SQLのDELETE文の基本構造は次のようになります。

DELETE文の基本形

このように、「DELETE FROM テーブル名 WHERE 更新するデータを特定するための条件式」が基本の形です。
値の登録が無い分、INSERT文やUPDATE文と比べるとシンプルになります。

WHEREの後ろに続く条件式が複数ある場合は「,(コンマ)」で区切って指定します。

それでは、実際にコードを書いていきましょう。
オブジェクト型」と「手続き型」の2パターンを紹介しますが、実行するSQL文は全く同じです。

なお、データベースへの接続までは「mysqliを使ってデータベースへ接続」と同様です。
接続までの部分について、詳しくはこちらの記事をご覧ください。

オブジェクト型の書き方

まずは、オブジェクト型で書いた場合のコードです。

オブジェクト型のコード例

$mysqli = new mysqli( 'host_name', 'user_name', 'password', 'gc_database');

if( $mysqli->connect_errno ) {
	echo $mysqli->connect_errno . ' : ' . $mysqli->connect_error;
}

$mysqli->set_charset('utf8');

// DELETEのSQL作成
$sql = "DELETE FROM gc_granola WHERE id = 14";

// SQL実行
$res = $mysqli->query($sql);

var_dump($res);
$mysqli->close();

実行結果

削除前のデータベース

削除を行う前のデータベース

削除後のデータベース

削除を行った後のデータベース

解説

上記のSQLでは「id」に「14」を持つデータを削除しています。
一度削除を行うと復旧することはできないため、DELETE文は慎重に扱う必要があります。

$resの中には、queryメソッドの返り値が入ります。
SQLの実行が成功した場合はtrue、失敗した場合はfalseが返ってきます。
実際にデータの削除を行ったかには関係なく、SQLの実行がされたか、否かに対する返り値であることに注意してください

手続き型の書き方

次に、手続き型でコードを書いていきます。

手続き型のコード例

$db_link = mysqli_connect( 'host_name', 'user_name', 'password', 'gc_database');

if( mysqli_connect_errno($db_link) ) {
	echo mysqli_connect_errno($db_link) . ' : ' . mysqli_connect_error($db_link);
}

mysqli_set_charset( $db_link, 'utf8');

// DELETEのSQL作成
$sql = "DELETE FROM gc_granola WHERE id = 14";

// SQL実行
$res = mysqli_query( $db_link, $sql);

mysqli_close($db_link);

実行結果

実行結果は上記「オブジェクト型」と同様です。

解説

実行するSQLは「オブジェクト型」と全く同じものなので、条件式の指定方法や返り値は同じです。

  • このエントリーをはてなブックマークに追加
前のページへ 一覧ページへ一覧 次のページへ