MySQL

【MySQL】PHPでqueryを使ってデータベースの値を取得する方法

PHPでqueryを使ってMySQLにあるデータベースから特定の値を抜き取る方法を記します。

PHPのqueryでMySQLのデータを取得した結果GIF

 補足
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

参考:例1 PDO::queryの例

今回は前回同様のデータベース「test」の中の、テーブル「部品保管」のデータをqueryを使って取得してみます!

PHPからデータ追加する対象のテーブル部品保管

 

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でMySQLのデータを取得した結果

 

部品在庫テーブル内の「型番・在庫数」といった、データの取得ができました!

PHPでqueryを使ったサンプルコードの説明

カンタンにサンプルコードの説明します。

 

アロー演算子「->」でqueryの処理を$dbへ格納しその処理自体を$sqlへ格納

 

さらにforeach文で$sqlのレコード値$rowを、echoを使って繰り返し取得・表示しています。

 

PHPのPDO::queryは繰り返し処理が得意

queryメソッドの優れた点は、実行できたSELECTステートメントのレコードで反復処理ができること

 

foreachwhile文を利用して、繰り返しレコードを取得する処理を書いてあげることで、テーブルの値を取得・表示してくれます。

 

先のサンプルコードは、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のデータを取得した結果

同じ処理結果が取得できてますね!

まとめ

PHPのqueryメソッドを使ってMySQLのデータを取得する方法でした。

 

かなりざっくりまとめてしまいましたが、またどこかでfetchなどにも紹介していきたいなと...

 

>【MAMP】PHPでMySQLにデータを追加する方法(phpMyAdmin)

>【MAMP】PHPでMySQLに接続する方法。超ハマったポイントも

>【phpMyAdmin】データのエクスポートをCSVで行う方法



  • この記事を書いた人
  • 最新記事
oyakun

oyakun

30代半ば♂妻・子3人の5人で日々激戦中。Google app script&VBA初心者が自分の備忘録を兼ねて「スプレッドシート、Excel、WordPress、plugin」の設定等、主にブログやアフィリエイト周辺のtipsを背伸びしながらご紹介しています。

Copyright© OYAKUDACHI.XYZ , 2019 All Rights Reserved.