W rzeczywistości robisz za dużo:
$query = $dbh->prepare("SELECT * FROM students");
$query->execute();
$result = $dbh->query($query);
Problematyczna linia to:
$result = $dbh->query($query);
Skontaktuj się z http://php.net/pdo.query
, parametr jest ciągiem, a właściwie ciągiem SQL, którego już używasz powyżej, a nie wartością wynikową PDO::prepare()
zadzwoń.
W przypadku prostego zapytania możesz po prostu wykonać:
$result = $dbh->query("SELECT * FROM students");
Lub jeśli lubisz przygotowywać:
$query = $dbh->prepare("SELECT * FROM students");
$query->execute();
$result = $query;
Ta ostatnia jest trochę szablonowa, jeśli chcesz wstawić zmienne do zapytania, dlatego je przygotowujesz.
Następny problem dotyczy foreach
linia:
foreach($result as $row);
Zatrzymujesz pętlę natychmiast z powodu średnika ;
na końcu. Usuń ten średnik, aby następujący blok kodu w nawiasach kątowych stał się treścią pętli foreach.