[PHP]PDOを使ったデータ抽出
今回はselectでデータを取り出していきましょう!まずはPDOについてとデータベースの接続方法はこちらをご覧ください↓
insertでデータの挿入はこちら↓
開発環境
PHP 7.3/PostgreSQL 12.1
全件抽出
$stmt = $db->query("select * from todos order by id desc");
//結果を配列で取得
$tasks = $stmt->fetchAll(\PDO::FETCH_OBJ);
まずは1行目で接続したデータベースに対してSQL文を発行し、結果をPDOStatementオブジェクトとして$stmtに返しています。プレイスホルダを使わない場合はpreapareメソッドの代わりにqueryメソッドを使うとシンプルに記述できます。
その後fetchAllメソッドで結果のデータをまとめてPHPの配列として$tasksの変数に取得しました。( )内でPDOがそのデータをどのように返すか決定しています。
PDO::FETCH_OBJ :カラム名と同名のプロパティを有する匿名のオブジェクトを返す
<ul>
<?php foreach($tasks as $task): ?>
<li><?php echo htmlspecialchars($task->title); ?>
<?php endforeach; ?>
</ul>
あとはforeachで格納されている配列を1行ずつ取り出して表示させていきます。
まとめ
フェッチメソッドやフェッチモードは他にも様々あるのでドキュメントなどで確認しながら使っていきましょう!
参考
PDO3部作はこちらの本を使って勉強しました!
サポートしていただけるとこれからも続ける励みになります! 書籍購入などに使わせていただく予定です! 何卒よろしくお願いします^^