【fetchってなんだ?】PHP×PDOの“1件ずつ処理”の極意 — 配列じゃない、「順番に取り出して処理する」という考え方 —
PHPでデータベースから情報を取り出すときによく使われる fetch() や fetchAll()。最初は「何が違うの?」「All ってつけないとどうなるの?」と疑問だったけれど、今日じっくり向き合って、ようやく自分の言葉で腑に落ちる感覚が得られたので記録しておきます。 ✅ fetchAll():まとめて全部テーブルに出す ✅ fetch():1件ずつ順番に受け取っていく 🎯 fetch という言葉に込められた意味 英語の fetch には「どこかへ行って、何かを取ってきて戻る」というニュアンスがある。 この言葉の感性って、なかなか日本語だけでは浮かびにくい。でも、その動作のイメージを持つことで「fetch の正体」がぐっと鮮明になる。 ✨ 今日の理解をひと言で fetch() は、実行済みのSQLステートメントに対して「結果をひとつずつ読み出す操作」。それは「データを配列にして持ってくる」というより、「次の資料を一枚ずつ請求する」感覚。そして $stmt は「SQL文の実行結果や状態を保持する概念」だと理解した。 🔚 おわりに 最初はなんとなく使ってた fetch() や fetchAll()。でも実は、「データの取り方の違い」がちゃんとあることがわかった。 fetch() は1件ずつもらうやり方。fetchAll() は全部まとめて受け取るやり方。 それがわかったので、これからは「どっち使うべきか?」考えられるようになった。 今後も「この関数ってどういうイメージなんだろう?」ってところから掘っていきたい。