PHPでqueryを使ってMySQLにあるデータベースから特定の値を抜き取る方法を記します。
PHPでMySQLにデータを追加する方法を学んでおくと、この記事の理解が進むと思います!
-
【MySQL】PHPでqueryを使ってデータベースの値を取得する方法
PHPでqueryを使ってMySQLにあるデータベースから特定の値を抜き取る方法を記します。 補足 PHPでMySQL ...
続きを見る
PHPからMySQLのデータを取得するにはqueryを使う
PHPからMySQLのデータを取得するには、「query」(PDO::query)メソッドを使います。
「query」はSQLステートメントを実行し、結果をPDOStatement オブジェクトとして返してくれるメソッドです。
public PDO::query ( string $statement ) : PDOStatement
参考:PDO::query
なお、失敗したときはFALSEが返されます。
PDO::query を使った例文
<?php
function getFruit($conn) {
$sql = 'SELECT name, color, calories FROM fruit ORDER BY name';
foreach ($conn->query($sql) as $row) {
print $row['name'] . "t";
print $row['color'] . "t";
print $row['calories'] . "n";
}
}
?>
PDO::query例文の出力結果
apple red 150
banana yellow 250
kiwi brown 75
lemon yellow 25
orange orange 300
pear green 150
watermelon pink 90
今回は前回同様のデータベース「test」の中の、テーブル「部品保管」のデータをqueryを使って取得してみます!
MySQLからPHPのqueryを使ってデータ取得するサンプルコード
PHPでqueryを使った書き方のサンプルコードです。
index3.phpを作成し、以下実行してみました。
try {
$db = new PDO('mysql:dbname=test;host=localhost;charset=utf8','root','root');
echo "接続OK!" . "n";
} catch (PDOException $e) {
echo 'DB接続エラー!: ' . $e->getMessage();
}
//対象のテーブルを変数に格納
$data = 部品保管;
// 対象テーブルを選択しSELECT文を変数tableへ格納
$table = "SELECT * FROM $data";
// queryを実行し、結果を変数に格納
$sql = $db->query($table);
// foreach文で繰り返し配列の中身を一行ずつ出力
foreach ($sql as $row) {
// データベースのフィールド名で出力
echo $data . "のデータ:" . $row['型番'] . 'は' . $row['在庫数'].'個です'.'<br>';
}
PHPでqueryを使ったサンプルコードの実行結果↓
部品在庫テーブル内の「型番・在庫数」といった、データの取得ができました!
PHPでqueryを使ったサンプルコードの説明
カンタンにサンプルコードの説明します。
アロー演算子「->」でqueryの処理を$dbへ格納しその処理自体を$sqlへ格納。
さらにforeach文で$sqlのレコード値$rowを、echoを使って繰り返し取得・表示しています。
PHPのPDO::queryは繰り返し処理が得意
queryメソッドの優れた点は、実行できたSELECTステートメントのレコードで反復処理ができること。
foreachやwhile文を利用して、繰り返しレコードを取得する処理を書いてあげることで、テーブルの値を取得・表示してくれます。
先のサンプルコードは、while文だと以下のように書けます↓
try {
$db = new PDO('mysql:dbname=test;host=localhost;charset=utf8','root','root');
echo "接続OK!" . "n";
} catch (PDOException $e) {
echo 'DB接続エラー!: ' . $e->getMessage();
}
$data = 部品保管;
$table = "SELECT * FROM $data";
$sql = $db->query($table);
//while文で繰り返し
while($table2 = $sql -> fetch()){
print($data . "のデータ:" .$table2['型番'] .'は'.$table2['在庫数'].'個です').'
';
}
queryとwhile文のを使った実行結果↓
同じ処理結果が取得できてますね!
まとめ
PHPのqueryメソッドを使ってMySQLのデータを取得する方法でした。
かなりざっくりまとめてしまいましたが、またどこかでfetchなどにも紹介していきたいなと...
-
PHPでMySQLへ入力フォームからデータ登録する方法
入力フォームからPHPを経由してMySQLへデータ登録する方法を紹介します。 補足 「PHPのqueryメソッドでMyS ...
続きを見る
関連記事:【MAMP】PHPでMySQLにデータを追加する方法(phpMyAdmin)
関連記事:【MAMP】PHPでMySQLに接続する方法。超ハマったポイントも
関連記事:【phpMyAdmin】データのエクスポートをCSVで行う方法