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