広告

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

2019年9月19日

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

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

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などにも紹介していきたいなと...

次の記事
MySql-prepare-php
PHPでMySQLへ入力フォームからデータ登録する方法

入力フォームからPHPを経由してMySQLへデータ登録する方法を紹介します。 補足 「PHPのqueryメソッドでMyS ...

続きを見る

関連記事:【MAMP】PHPでMySQLにデータを追加する方法(phpMyAdmin)
関連記事:【MAMP】PHPでMySQLに接続する方法。超ハマったポイントも
関連記事:【phpMyAdmin】データのエクスポートをCSVで行う方法