Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sélection de données de table avec des instructions PDO

Vous en faites trop en fait :

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

La ligne problématique est :

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

Vérifiez avec http://php.net/pdo.query , le paramètre est une chaîne, en fait la chaîne SQL que vous utilisez déjà ci-dessus, pas la valeur de résultat d'un PDO::prepare() appeler.

Pour votre requête simple, vous pouvez simplement faire :

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

Ou si vous aimez vous préparer :

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

Ce dernier est un passe-partout si vous souhaitez insérer des variables dans la requête, c'est pourquoi vous le préparez.

Le problème suivant est avec le foreach ligne :

foreach($result as $row);

Vous terminez la boucle immédiatement à cause du point-virgule ; à la fin. Supprimez ce point-virgule pour que le bloc de code entre crochets suivant devienne le corps de la boucle foreach.