Du gør faktisk for meget:
$query = $dbh->prepare("SELECT * FROM students");
$query->execute();
$result = $dbh->query($query);
Den problematiske linje er:
$result = $dbh->query($query);
Tjek med http://php.net/pdo.query
, parameteren er en streng, faktisk den SQL-streng, du allerede bruger ovenfor, ikke resultatværdien af en PDO::prepare()
ring.
For din simple forespørgsel kan du blot gøre:
$result = $dbh->query("SELECT * FROM students");
Eller hvis du kan lide at forberede:
$query = $dbh->prepare("SELECT * FROM students");
$query->execute();
$result = $query;
Det senere er noget kedelsten, hvis du vil indsætte variabler i forespørgslen, det er derfor, du forbereder det.
Det næste problem er med foreach
linje:
foreach($result as $row);
Du afslutter løkken med det samme på grund af semikolonet ;
i slutningen. Fjern det semikolon, så den følgende kodeblok med vinkelparentes bliver kroppen af foreach-løkken.