0Pricing
PHP Academy · レッスン

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 objects

fetchColumn()

次の行から単一の列の値を取得します。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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. PDOでMySQLに接続する
  2. プリペアドステートメントとバインド
  3. PDOで結果を取得する
  4. PDOによるトランザクション
← PHP Academyに戻る