MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

既存のMySQLテーブルからデータを削除するPHPスクリプトの作成方法

既存のMySQLテーブルからデータを削除するには、SQLのDELETEコマンドを使用します。WHERE句を付けても付けなくても実行可能で、PHPではこのDELETEコマンドをmysql_query()関数に渡して実行します。この関数は、mysql>プロンプトでSQLコマンドを実行するのとまったく同じように動作します。

DELETE文の基本構文

特定のレコードだけを削除したい場合は、WHERE句で条件を指定します。

DELETE FROM テーブル名 WHERE 条件;

サンプルコード

ここでは、tutorial_tblという名前のMySQLテーブルから、tutorial_idが3であるレコードを1件削除するPHPスクリプトの例を紹介します。

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);

   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }

   $sql = 'DELETE FROM tutorials_tbl WHERE tutorial_id=3';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );

   if(! $retval ) {
      die('Could not delete data: ' . mysql_error());
   }
   echo "Deleted data successfully\n";
   mysql_close($conn);
?>

処理の流れ

  • データベースへの接続:mysql_connect()関数にホスト名・ユーザー名・パスワードを渡して接続します。接続に失敗した場合はdie()でスクリプトを終了します。
  • SQL文の準備:変数$sqlにDELETE文を格納します。WHERE句で「tutorial_id=3」という条件を指定しているため、該当する1件のレコードのみが削除されます。
  • データベースの選択とクエリ実行:mysql_select_db()で対象データベースを選択し、mysql_query()でSQLを実行します。
  • 結果の確認:クエリが失敗した場合はエラーメッセージを表示して終了し、成功した場合は「Deleted data successfully」と出力します。
  • 接続の切断:最後にmysql_close()で接続を閉じます。

注意点

mysql_*系の関数はPHP 5.5で非推奨となり、PHP 7以降では完全に削除されています。現在の開発では、mysqli拡張モジュールまたはPDOの使用を強く推奨します。また、WHERE句を省略してDELETE文を実行するとテーブル内の全レコードが削除されてしまうため、本番環境で実行する前に必ずバックアップを取得するなど、慎重な運用を心がけてください。

  1. MySQLで条件に一致する最後のレコードを削除する方法(ORDER BY DESCとLIMITの使い方)

    MySQLで条件に一致する最後のレコードを削除する方法MySQLのテーブルから、特定の条件に一致する「最後のレコード」を削除したい場合は、DELETE文にORDER BY DESCとLIMITを組み合わせて使用します。この方法を使えば、条件を満たすレコードの中で最も新しい(または最も古い)1件だけを簡単に削除できます。基本構文DELETE FROM テーブル名 WHERE カラム名1=値 ORDER BY カラム名2 DESC LIMIT 1;この構文では、指定したカラムを降順(DESC)でソートし、その先頭の1件を削除します。降順ソートの先頭に来るのは「最も新しいレコード」なので、結果として

  2. MySQLでテーブルにデータを挿入するストアドプロシージャの作成方法

    MySQLでは、ストアドプロシージャを利用することで、テーブルへのデータ挿入処理を再利用可能な形でまとめることができます。本記事では、実際にテーブルを作成し、データを挿入するためのストアドプロシージャを定義して呼び出すまでの一連の手順を解説します。 1. 挿入先となるテーブルを作成する まず、データを挿入するためのテーブルを用意します。以下の例では、Id・Name・Age の3つのカラムを持つテーブル「insertDataUsingStoredProcedure」を作成しています。 mysql> create table insertDataUsingStoredProcedure