$stmt->fetch()はどういう意味?

この記事は約 2 分 で読むことができます。

データベースを操作する際に行う「$user = $stmt->fetch();」は、具体的には何をする処理なのでしょうか?

データベースからデータを取得する場合、以下の4つの手順を踏みます。

[1] データを取得するためのSQL文作成する。
$sql = “select * from user where user_email = :user_email limit 1”;

[2] 1で作成したSQLを実行オブジェクトにセットする。
$stmt = $pdo->prepare($sql);

[3] SQLを実行する(SQL文中で「:」で始まる代替文字列を使用した場合は実際の値も渡す)
$stmt->execute(array(“:user_email” => $user_email));

[4] 実行結果のデータを取り出す。
$user = $stmt->fetch();

つまり、「$user = $stmt->fetch();」という文は、
SQLを実行した「結果データ」を取得する処理となります。

この例では、取得した結果データは$userという変数に入ります。

そのため、$user[‘カラム名’]という指定で、
データベースから取得した実際のデータが取り出せるわけです。
例:$user[‘id’]など

なお、「$stmt->fetch();」というのは、SQLの実行結果が「1件」の場合の取り出し方です。
上記のSQLでは、末尾に「limit 1」を指定して、結果データを1件のみ取得しているため
fetch()で取り出しています。

1件ではなく、結果データが複数件ある場合にはfetch()の代わりに
fetchAll()を使います。

$stmt->fetch()はどういう意味?
この記事はあなたのお役に立てましたか?

この記事があなたのお役に立てましたら、
いいね!クリックをお願いします!

あなたも楽しくプログラミングを学んでみませんか?

コメントを残す