あなたは実際にやりすぎです:
$query = $dbh->prepare("SELECT * FROM students");
$query->execute();
$result = $dbh->query($query);
問題のある行は次のとおりです。
$result = $dbh->query($query);
http://php.net/pdo.query
で確認してください 、パラメータは文字列であり、実際には上記ですでに使用しているSQL文字列であり、PDO::prepare()
の結果値ではありません。 電話してください。
簡単なクエリの場合は、次のようにすることができます。
$result = $dbh->query("SELECT * FROM students");
または、準備したい場合:
$query = $dbh->prepare("SELECT * FROM students");
$query->execute();
$result = $query;
後者は、変数をクエリに挿入する場合の定型文です。そのため、変数を準備します。
次の問題はforeach
にあります 行:
foreach($result as $row);
セミコロン;
が原因で、ループをすぐに終了しています。 最後に。そのセミコロンを削除して、次の山かっこ付きのコードブロックがforeachループの本体になるようにします。