PHPを使用しデータベースへ接続する方法

はじめに

初心者がPHPの勉強をしたのでアウトプットしていく。
とにかく最速でアプリを作るための勉強なので、作りたいものに特化したアウトプットになる。
今回はデータベースへの接続方法について。

PHPでデータベースに接続するコード

$user = "〇〇〇";
$pass = "●●●";

$dbh = new PDO('mysql:host=localhost;dbname=test;charset=utf8', $user, $pass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "SELECT * FROM TABLENAME";
$stmt = $dbh->query($sql);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

わかりやすくするために細分化してみる

$user = "〇〇〇";
$pass = "●●●";

まずはデータベースで設定した「ユーザーネーム」「パスワード」を定義する。
PHPの変数は「$」記号のあとに変数名が続く形式で表される。

$dbh = new PDO('mysql:host=localhost;dbname=test;charset=utf8', $user, $pass);

PDOクラスのオブジェクトを作成し$dbhに定義する。

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

PDO::setAttributeはデータベースハンドルの属性を設定する処理。
PDO::ATTR_ERRMODEはSQL実行でエラーが起こった際にどう処理するかを指定する。
PDO::ERRMODE_EXCEPTIONは例外をスローしてくれる処理。これを選択しておくのが一番無難とのこと。
つまり、この構文ではSQL実行でエラーが起こった際にどう処理するかを指定している。

$sql = "SELECT * FROM TABLENAME";

TABLENAMEから全てのレコードを選択し、$sqlに定義する。

$stmt = $dbh->query($sql);

PDOクラスで用意されているqueryメソッド。
SQLステートメントを実行し、結果セットを PDOStatement オブジェクトとして返す処理。
取得したものを$stmtに定義する。

$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

PDOStatement::fetchは結果セットから次の行を取得するという処理。
引数のPDO::FETCH_ASSOCは、列名を記述し配列で取り出す設定をしている。配列の最後まで下記を実行し続ける。

構文として覚える

細分化してみたが、わからない箇所が多い。
もうこれは構文として覚えて、イレギュラーも都度覚えていく。

参考

https://qiita.com/mpyw/items/b00b72c5c95aac573b71
https://www.flatflag.nir87.com/arrow-249
https://rfs.jp/sb/sql/s03/03-15.html
https://www.javadrive.jp/php/pdo/index7.html