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

条件を指定してMySQLテーブルからデータを取得するPHPスクリプトの作成方法

WHERE句による条件付きデータ取得の基本

MySQLテーブルから特定の条件に合致するデータだけを取得したい場合は、SQL文にWHERE句を記述し、それをPHPスクリプトから実行します。

PHPスクリプト内では、まずmysql_query()関数を使ってSQLコマンドを実行します。その後、mysql_fetch_array()関数を呼び出すことで、選択されたデータを1行ずつ取り出すことができます。この関数は、結果の1行を連想配列数値添字配列、またはその両方として返し、取得できる行がなくなった時点でFALSEを返します。

サンプルコード

次の例では、tutorials_tblというテーブルから、著者名(tutorial_author)が「Sanjay」であるレコードをすべて取得して表示するPHPスクリプトを作成しています。

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   
   // WHERE句で著者名が「Sanjay」のレコードのみを抽出
   $sql = 'SELECT tutorial_id, tutorial_title,
      tutorial_author, submission_date
      FROM tutorials_tbl
      WHERE tutorial_author = "Sanjay"';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }
   
   // 取得した行を連想配列として順番に出力
   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
      echo "Tutorial ID :{$row['tutorial_id']} <br> ".
         "Title: {$row['tutorial_title']} <br> ".
         "Author: {$row['tutorial_author']} <br> ".
         "Submission Date : {$row['submission_date']} <br> ".
         "--------------------------------<br>";
   }
   echo "Fetched data successfully\n";
   mysql_close($conn);
?>

このスクリプトを実行すると、該当する各レコードについて「チュートリアルID」「タイトル」「著者名」「投稿日」が区切り線とともに出力され、最後に「Fetched data successfully」という完了メッセージが表示されます。

重要な注意点:mysql_*関数は非推奨

上記のコードで使用しているmysql_connect()mysql_query()といったmysql_*系の関数は、PHP 5.5で非推奨となり、PHP 7以降では完全に削除されました。現在の開発では、以下のいずれかを使用することが強く推奨されます。

  • mysqli拡張モジュールmysqli_connect()mysqli_query()など。手続き型・オブジェクト指向型の両方の書き方に対応しています。
  • PDO(PHP Data Objects):プリペアドステートメントに対応しており、複数のデータベースを抽象化して扱えます。

特にユーザー入力をクエリに含める場合は、SQLインジェクション対策として必ずプリペアドステートメントを使用してください。

  1. MySQLで条件に基づいてテーブルから一部の行のみを削除する方法

    MySQLで条件に基づいてテーブルから一部の行のみを削除する方法MySQLでは、DELETE文とWHERE句を組み合わせることで、テーブルから条件に合致する行だけを選択的に削除できます。WHERE句を指定しないとテーブル内のすべての行が削除されてしまうため、条件の指定は非常に重要です。ここでは、実際の例を使って手順を解説します。1. テーブルの作成まず、サンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> );Query O

  2. PythonとMySQLで条件に合うデータを抽出する方法:WHERE句の使い方を徹底解説

    テーブルからすべてのデータを取得する必要があるケースは、実はそれほど多くありません。むしろ、何らかの条件や基準に基づいて、特定のデータや行だけを取り出したいという場面の方が多いでしょう。例えば、多くの生徒の名前と点数が登録されたテーブルがあるとします。ここから「点数が90以上の生徒の名前だけを取得したい」という場合、(点数>=90)という条件に基づいてデータを選択する必要があります。このような条件付きのデータ抽出を実現するために、MySQLでは「WHERE」句が用意されています。WHERE句を使えば、指定した条件を満たすデータだけをテーブルから選択できます。基本構文SELECT * FR