PDOStatement とはどういったオブジェクトか教えて下さい

順を追って説明していきます。
2021年11月14日
ユーザー

大変、お世話になります。

トランザクションの質問ではなく、今更なのですが、このレッスンを聞いているときに疑問に感じましたので、この場で質問をさせて頂きます。

まず、$pdo->については、「データベースへのアクセスを抽象化してくれるもの」との言葉通り、データベースにアクセスする時に、その都度、$pdo->に続けてクエリ等を記載していくものだと理解しています。

一方、$stmtについては、「query() メソッドの結果は PDO ステートメントと呼ばれるオブジェクトで返ってくる」ので、それを$stmtで受けているとのことですが、今回のレッスンを振り返ると

$stmt = $pdo->query(
    "UPDATE posts SET likes = likes + 1 WHERE id = 1"
  );
$stmt = $pdo->query(
  "UPDATE posts SET likes = likes - 1 WHERE id = 2"
);
$stmt = $pdo->query("SELECT * FROM posts");

と 3 箇所で出てきます。

=で繋がれているので、各クエリが代入されていると思うのですが、それは、$stmtという変数に上書きされて行くのではなく、その後、$stmt->fetchAllと複数の配列を受け取る命令がでてるので、$stmtには、それら 3 つの各クエリが配列として代入されていく、と言うことでしょうか?

「query() メソッドの結果は PDO ステートメントと呼ばれるオブジェクトで返ってくる」との事で、今更ですが、オブジェクトと配列が混同していて、ご説明を頂けますでしょうか?

宜しくお願いいたします。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(3)