0

私はこのSQL文を理解しようとしています:

$id = 5;

$stmt = $conn->prepare('SELECT * FROM myTable WHERE id = :id');

    $stmt->execute(array('id' => $id));

    while($row = $stmt->fetch()) {
        print_r($row);
    }

誰かがここで何が起こっているのかを順を追って説明してもらえますか?

私が理解していることから:

$stmt = $conn->prepare('SELECT * FROM myTable WHERE id = :id');

1) $stmt は、iinput として SQL クエリを取得しようとしています。SQL クエリは、ID が 5 に等しいテーブルからすべての行を選択することです。

$stmt->execute(array('id' => $id));

2) ステートメントを実行します。$stmt にこれらの行がありますか?

$row = $stmt->fetch()

3) これは私にとって最も紛らわしい行です。ここで正確に何が起こりますか?変数「row」は、id = 5 の行を 1 つずつ取得します。それは fetch() がすることですか?はいの場合、結果はどのくらい正確に返されますか? すべての正解の配列ですか?EG id = 5 を持つすべての行? このwhileループがここでどのように機能するか正確にはわかりません。最初に「行」を実行すると、最初の行が表示されますか? 2 回目に実行すると、基準 (id = 5) を満たす 2 番目の行が表示されますか? fetch を実行するたびに 1 つの結果が返されるようなものですか? 次回、クエリを満たす結果がなくなるまで、次の結果である fetch を実行しますか?

私はこれを手に入れるのにとても近いと思います。それを完全に理解するのに役立つものは何でも大歓迎です!

4

2 に答える 2