【DB:接続と出力】PDOオブジェクト
「DBに接続してデータを扱いたい」ただそれだけ。
必要な情報
・データベースサーバー:***.sakura.ne.jp (例)
・データベース名:データベース名
・データベースユーザ名:ユーザ名
・データベースパスワード:接続先パスワード
流れ
①DBに接続 (PDO構文)
↓
②SQLで実行 (SQL構文)
↓
③ループ処理で配列にぶち込む (いつものループ処理)
順番に見ていこう。
【前提】
種類:mysql
DB名:mydb
テーブル名:players
①DBに接続 (PDO構文)
まずは、接続。
「PHP Data Objects」を略してPDOというデータベース抽象化レイヤというクラスを使う。
これを使うと、世の中に様々なDBの種類があるが、PDOを使えば同じような命令文でアクセスできる。
※今まではDBの種類ごとに命令文が違ったりした?らしい…
オブジェクトを作り、引数にDB情報を入れる。
<?php $pdo = new PDO('mysql:host=localhost; dbname=mydb; charset=utf8','root','パスワード'); ?>
②SQLで実行 (SQL構文)
つぎに、実行。
「何を実行するねん」と思うが、現状でDBに接続した”だけ”なので、$pdoオブジェクトを活用してデータをとりに”動く”というイメージ。
それにはテーブルとカラムやレコードを選択してどの情報をとるかの選択してから実行する。
最後の2行はテンプレなのでなんとなくでOK。
<?php $pdo = new PDO('mysql:host=localhost; dbname=mydb; charset=utf8','root','パスワード'); // ▼ SQLで実行 (SQL構文) $sql = 'SELECT * FROM players'; $statement = $pdo->prepare($sql); $statement->execute(); ?>
1行目が大切。ここで$sqlに、テーブルとカラム、レコード、条件を設定する。
※条件設定については次回。
③ループ処理で配列にぶち込む (いつものループ処理)
最後に、データを格納。
要はいつも使ってるような配列に入れること。「良かった~これで見慣れたデータ管理になった!」と思った。
これも見て覚えよう。
※勿論、配列名がresult名である必要はないよ。
<?php $result = []; while ($row = $statement->fetch(PDO::FETCH_ASSOC)) { $result[]; } ?>
これで、配列$resultの要素に1行ずつレコード情報が入った!
fetchは1行ずつ取り出すやつらしい。
ちなみに、WHEREでid指定して1行だけ出力する場合は以下
<?php $result = $statement->fetch(PDO::FETCH_ASSOC); } ?>
後は、htmlテンプレを読み込んで配列データを煮るなり焼くなりご自由に。
===========
参照記事(ありがとうございました!!)
https://qiita.com/mpyw/items/41230bec5c02142ae691qiita.comhttps://qiita.com/7968/items/6f089fec8dde676abb5bqiita.com
https://gray-code.com/php/connection-db-by-using-pdo/gray-code.com
===========