私はphpとmysqlの初心者です。現在、PDOを自習しており、いくつかの概念を混乱させています。
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$sql = "SELECT * FROM users";
$users = $dbh->query($sql);
1.PDOクラスとPDOStatementクラスの関係は何ですか?
$dbh
クラスPDOの新しいオブジェクトですが、なぜ$ usersがPDOStatementオブジェクトなのですか?fetchAll()
クラス内の関数ですがPDOStatement
、このように使用できます、またはオブジェクトですか?$users->fetchAll()
$users
PDO
PDOStatement
2.誰かが$usersがカーソルであり、一度消費されると、結果セットの先頭に巻き戻されないと言いました。
foreach ($users as $row) {
print $row["name"] . "<br/>";
}
foreach
しかし、なぜあなたはそれをステートメントで使うことができるのですか?foreach
配列を反復処理する方法を提供します。実際のカーソルとは何ですか?カーソルはポインタですか?
3. pdostatementクラスの場合、ドキュメントは次のように述べています。
PDOStatement implements Traversable { ... }
このクラスがTraversableインターフェイスを実装するのはなぜですか?それは空のインターフェースですか?
助けてくれてありがとう!