SQLの準備/実行/読み込み(prepare/execute/fetch)メモ -PHP-

phpのPDO(PHP Data Objects)のかなり簡単なメモです。
メソッド(prepare, execute, fetch)を実行してどんな結果が返ってくるのかあたり。

クエリの作成(PDO::prepare)

実行例:
$dbh->prepare($sql)

クエリーの文(PDOStatementオブジェクト)が返ってくる
基本的に何が入っててもそのまま文にして返してくるっぽい。SQL文として間違っていてもエラーにはならない。
※失敗したらfalseを返すか、例外を投げるっぽいが、どういう時にそうなるのか・・・

参照: https://www.php.net/manual/ja/pdo.prepare.php

クエリの実行(PDO::execute)

実行例:
$dbh->execute($data)

クエリの実行が成功した場合はtrueを返す
クエリの実行が失敗した場合はfalseを返す
※SELECTの結果のレコードが0件の場合もfalse?と思われる

参照: https://www.php.net/manual/ja/pdostatement.execute.php

クエリの結果取得(PDO::fetch)

実行例
$result = $stmt->fetch(PDO::FETCH_ASSOC);

成功した場合、結果のレコードを連想配列として返す(FETCH_ASSOCの場合)
失敗したばい、falseを返す

連想配列として返ってくるので、最初の値を取得する場合はarray_shiftやcurrentなどで指定したり、キーを指定したりする($result['(キー名)'])

https://www.php.net/manual/ja/pdostatement.fetch.php

おまけ

取得した結果を判定するのに参考にしてるページ
empty(), is_null(), isset()の結果一覧: https://php.net/manual/ja/types.comparisons.php