Du gör för mycket faktiskt:
$query = $dbh->prepare("SELECT * FROM students");
$query->execute();
$result = $dbh->query($query);
Den problematiska raden är:
$result = $dbh->query($query);
Kolla med http://php.net/pdo.query
, parametern är en sträng, faktiskt SQL-strängen du redan använder ovan, inte resultatvärdet för en PDO::prepare()
ring.
För din enkla fråga kan du bara göra:
$result = $dbh->query("SELECT * FROM students");
Eller om du gillar att förbereda:
$query = $dbh->prepare("SELECT * FROM students");
$query->execute();
$result = $query;
Det senare är en bra idé om du vill infoga variabler i frågan, det är därför du förbereder den.
Nästa problem är med foreach
rad:
foreach($result as $row);
Du avslutar slingan omedelbart på grund av semikolonet ;
i slutet. Ta bort semikolonet så att följande kodblock med vinkelparenteser blir kroppen av foreach-loopen.