Ve skutečnosti děláte příliš mnoho:
$query = $dbh->prepare("SELECT * FROM students");
$query->execute();
$result = $dbh->query($query);
Problematický řádek je:
$result = $dbh->query($query);
Zkontrolujte pomocí http://php.net/pdo.query
, parametr je řetězec, ve skutečnosti řetězec SQL, který již používáte výše, nikoli výsledná hodnota PDO::prepare()
zavolejte.
Pro váš jednoduchý dotaz můžete udělat:
$result = $dbh->query("SELECT * FROM students");
Nebo pokud se rádi připravujete:
$query = $dbh->prepare("SELECT * FROM students");
$query->execute();
$result = $query;
Ten pozdější je nějaký standard, pokud chcete do dotazu vložit proměnné, proto si ho připravte.
Další problém je s foreach
řádek:
foreach($result as $row);
Okamžitě ukončujete smyčku kvůli středníku ;
na konci. Odstraňte středník, aby se následující blok kódu v úhlových závorkách stal tělem smyčky foreach.