条件を指定して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インジェクション対策として必ずプリペアドステートメントを使用してください。
-
MySQLで条件に基づいてテーブルから一部の行のみを削除する方法
MySQLで条件に基づいてテーブルから一部の行のみを削除する方法MySQLでは、DELETE文とWHERE句を組み合わせることで、テーブルから条件に合致する行だけを選択的に削除できます。WHERE句を指定しないとテーブル内のすべての行が削除されてしまうため、条件の指定は非常に重要です。ここでは、実際の例を使って手順を解説します。1. テーブルの作成まず、サンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> );Query O
-
PythonとMySQLで条件に合うデータを抽出する方法:WHERE句の使い方を徹底解説
テーブルからすべてのデータを取得する必要があるケースは、実はそれほど多くありません。むしろ、何らかの条件や基準に基づいて、特定のデータや行だけを取り出したいという場面の方が多いでしょう。例えば、多くの生徒の名前と点数が登録されたテーブルがあるとします。ここから「点数が90以上の生徒の名前だけを取得したい」という場合、(点数>=90)という条件に基づいてデータを選択する必要があります。このような条件付きのデータ抽出を実現するために、MySQLでは「WHERE」句が用意されています。WHERE句を使えば、指定した条件を満たすデータだけをテーブルから選択できます。基本構文SELECT * FR