大変、お世話になります。
トランザクションの質問ではなく、今更なのですが、このレッスンを聞いているときに疑問に感じましたので、この場で質問をさせて頂きます。
まず、$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 ステートメントと呼ばれるオブジェクトで返ってくる」との事で、今更ですが、オブジェクトと配列が混同していて、ご説明を頂けますでしょうか?
宜しくお願いいたします。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?