PDOで結果を取得する
fetchAll、fetch、PDOのフェッチモードを使って行を取得します
「PDOで結果を取得する」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。
fetch()とfetchAll()
fetch()は一度に1行を返し、カーソルを次の行へ進めます。fetchAll()は1回の呼び出しですべての行を配列として返します。
ループ内でのfetch()
大きな結果セットに適しています。すべてのデータをメモリに読み込まず、1行ずつ処理できます。
<?php
$stmt = $pdo->query("SELECT id, name FROM users");
while ($row = $stmt->fetch()) {
echo $row["id"]." - ".$row["name"]."\n";
}fetchAll()
すべての行を一度に返します。小さな結果セットに便利です。
<?php
$stmt = $pdo->query("SELECT * FROM products ORDER BY price");
$products = $stmt->fetchAll();FETCH_ASSOC
列名をキーとする連想配列として行を返します。最も一般的なフェッチモードです。
<?php
$row = $stmt->fetch(PDO::FETCH_ASSOC);
// $row["email"], $row["name"]FETCH_OBJ
stdClassオブジェクトとして行を返します。列にはプロパティとしてアクセスします。
<?php
$stmt->setFetchMode(PDO::FETCH_OBJ);
$row = $stmt->fetch();
echo $row->email;FETCH_CLASS
行を指定したクラスのインスタンスに直接ハイドレートします。
<?php
$stmt->setFetchMode(PDO::FETCH_CLASS, User::class);
$users = $stmt->fetchAll(); // array of User objectsfetchColumn()
次の行から単一の列の値を取得します。COUNTクエリに便利です。
<?php
$count = $pdo->query("SELECT COUNT(*) FROM orders")->fetchColumn();
echo "Total orders: ".$count;FETCH_KEY_PAIR
1列目をキー、2列目を値とする連想配列を返します。IDから名前を検索する処理に最適です。
<?php
$map = $pdo->query("SELECT id, name FROM categories")
->fetchAll(PDO::FETCH_KEY_PAIR);
// $map[1] = "Electronics", $map[2] = "Books"FETCH_UNIQUE
FETCH_UNIQUEは1列目をキーとして結果をインデックス化し、重複を排除します。
FETCH_GROUP
FETCH_GROUPは1列目の値ごとに行をグループ化します。1対多のリレーションに便利です。
closeCursor()
一部のドライバーでは、同じ接続で別のクエリを実行する前に、ステートメントでcloseCursor()を呼び出す必要があります。
結果がない場合
これ以上行がない場合、fetch()はfalseを返します。必ずif ($row === false)で確認してください。
クイックチェック
1行から単一の列の値を返すメソッドはどれですか。
よくある質問
「PDOで結果を取得する」レッスンは無料ですか?
はい。「PDOで結果を取得する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。
「PDOで結果を取得する」で何を学びますか?
fetchAll、fetch、PDOのフェッチモードを使って行を取得します ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
PHP Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「PDOで結果を取得する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPHP Academyレッスンでコードを書いて実行できますか?
はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。