En utilisant PDO pour l'écho de l'affichage de toutes les lignes d'une table
Je suis en train de l'écho de toutes les lignes d'une table à l'aide de PDO, mais je suis en cours d'exécution dans la difficulté.
Avec l'ancienne façon de faire, je l'ai fait comme
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)){
$title= $row['title'];
$body= $row['body'];
}
Mais avec PDO, je suis en train;
$result = $db->prepare("SELECT title, body FROM post");
$result->execute();
while ($row = $db->fetchAll(PDO::FETCH_ASSOC))
{
$title = $row['title'];
$body = $row['body'];
}
echo $title;
echo $body;
Qui continue à m'Appeler pour pas défini la méthode PDO::fetchAll()
Faire l'exemple donné dans le manuel
<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
/* Fetch all of the remaining rows in the result set */
print("Fetch all of the remaining rows in the result set:\n");
$result = $sth->fetchAll();
print_r($result);
?>
Fonctionne, mais je ne pense pas que j'ai le contrôle sur l'individu en colonnes comme je le ferais avec un $row=['blabla']; dois-je? Il imprime aussi comme cela; plutôt moche:
Array ( [0] => Array ( [titre] => C'est le titre de test entré dans la base de données[0]
Ce qui doit être fait pour bien utiliser PDO pour ce faire?
OriginalL'auteur Michael N | 2013-01-23
Vous devez vous connecter pour publier un commentaire.
changement:
:
J'ai changé ma réponse, essayez de nouveau... ($db, $result)
Merci John. Veuillez excuser l'ignorance, mais d'où vient le $du résultat? C'est de me donner un undefined variable d'erreur.
regardez dans votre post et de trouver la variable $result? Pourrait être $sth, je ne sais pas quelle version de vous poste que vous utilisez...
Hahaha oh boy, je n'ai pas regarder un imbécile. Changé que dans mon code, en raison de fabs réponse et j'ai oublié à ce sujet. Eu travaille maintenant, merci!
OriginalL'auteur Green Black
Cela devrait vous ont donné le soupçon, que vous utilisez le mauvais objet. C'est PDOStatement::fetchAll comme vous pouvez le voir dans ton deuxième exemple, ou si vous voulez l'utiliser dans une boucle while PDOStatement::fetch:
Remarques supplémentaires:
$result
est un mauvais nom de variable comme vous pouvez le voir à partir de la$result->execute()
ligne. Vous n'avez pas à exécuter un résultat, vous exécutez une déclaration. C'est pourquoi, dans le manuel$stmt
ou$sth
(descripteur d'instruction, je suppose) sont utilisés.echo
lignes doivent être à l'intérieur de la boucle while, sinon vous écraser encore et encore, puis sortie de la dernière ligne.OriginalL'auteur Fabian Schmengler