MySQLからPHPでデータを取得してブラウザに表示する
今回は前回に引き続きMySQLからデータを取得する方法について書いていきます。
データベースとの接続がまだの方はこちらを先に見てください。
今回は'users'というテーブルを用意しました。
それぞれid、苗字、名前、メールアドレスのデータが入っています。
SQL文の準備
まずはSQL文の準備です。
このように書きます。
$sql = "SELECT * FROM テーブル名";
今回だとテーブル名の所には'users'が入ります。
'users' から(FROM) 全部のデータ(*) を取ってくる(SELECT)という意味になります。
その処理を$sqlに変数として入れてます。
SQL文の実行
SQL文の実行ですが前回同様PDOを使っていきます。
$stmt = $dbh->query($sql);
query()というメソッドを使ってデータベースに問い合わせる処理となります。
PDO::query() は、一回の関数コールの中で SQL ステートメントを準備して実行し、 結果を PDOStatement オブジェクトとして返します。
それを変数$stmtに入れていきます。
結果の取り出し
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
結果を取り出すコードは上記になります。
今回はfetchAllというメソッドを使用しています。
PDOStatement::fetchAll — 結果セットから、残っている行を取得する。
その中のPDO::FETCH_ASSOCですが、これは連想配列として各行を返します。
これにより、結果セットが連想配列として取得され、id,last_name,first_name,emailといったキーでアクセスできるようになります。
実際に書いてみよう
前回までのコード
`<?php
$dsn = 'mysql:host=localhost;dbname=test;charset=utf8';
$user = 'root'; // ここは設定したユーザーを入れてください
$pass = 'root'; // ここは設定したパスワードを入れてください
try {
$dbh = new PDO($dsn,$user,$pass,[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
echo '接続成功';
$dbh = null;
} catch(PDOException $e) {
echo '接続失敗'. $e->getMessage();
exit();
};
?>`
上記が前回書いたコードです。
ここから続きを書くと
`<?php
$dsn = 'mysql:host=localhost;dbname=test;charset=utf8';
$user = 'root'; // ここは設定したユーザーを入れてください
$pass = 'root'; // ここは設定したパスワードを入れてください
try {
$dbh = new PDO($dsn,$user,$pass,[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
]);
echo '接続成功';
// SQLの準備
$sql = 'SELECT * FROM users';
// SQLの実行
$stmt = $dbh->query($sql);
// SQLの結果を受け取る
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($result);
$dbh = null;
} catch(PDOException $e) {
echo '接続失敗'. $e->getMessage();
exit();
};
?>`
このようになります。
var_dump()で見てみましょう。
ユーザーデータが配列で返ってきてますね。
この配列をforeachを使ってリストで表示したいと思います。
次のように書いてください。
`
No.
氏名:
メールアドレス:
ユーザーの情報がリストで表示することができました!
お疲れ様でした!