【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

===========