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