Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Tabellendaten mit PDO-Anweisungen auswählen

Du machst eigentlich zu viel:

$query = $dbh->prepare("SELECT * FROM students");
$query->execute();
$result = $dbh->query($query);

Die problematische Zeile lautet:

$result = $dbh->query($query);

Überprüfen Sie dies mit http://php.net/pdo.query , ist der Parameter ein String, eigentlich der SQL-String, den Sie oben bereits verwenden, nicht der Ergebniswert eines PDO::prepare() anrufen.

Für Ihre einfache Abfrage können Sie einfach Folgendes tun:

$result = $dbh->query("SELECT * FROM students");

Oder wenn Sie sich vorbereiten möchten:

$query = $dbh->prepare("SELECT * FROM students");
$query->execute();
$result = $query;

Letzteres ist eine Art Boilerplate, wenn Sie Variablen in die Abfrage einfügen möchten, deshalb bereiten Sie es vor.

Das nächste Problem ist mit foreach Zeile:

foreach($result as $row);

Durch das Semikolon ; brechen Sie die Schleife sofort ab Am Ende. Entfernen Sie dieses Semikolon, sodass der folgende Codeblock in spitzen Klammern zum Hauptteil der foreach-Schleife wird.