Je suis nouveau sur PHP et PDO, et j'essaie d'utiliser des instructions préparées ici. Après une heure d'essai, j'abandonne. Ou mon tutoriel était horriblement mauvais.Comment utiliser les instructions préparées dans cette requête?
EDIT:
Cela fonctionne parfaitement sans instructions préparées:
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
$prepared = $dbh->prepare('SELECT * from sys_navigation_point WHERE name="root"');
//$prepared->bindParam('foo', 'root');
$prepared->execute();
foreach($prepared as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
Mais cela ne fonctionne pas du tout avec une déclaration préparée. Obtention d'une page totalement vide en procédant ainsi:
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', 'root', 'root');
$prepared = $dbh->prepare('SELECT * from sys_navigation_point WHERE name=:foo');
$prepared->bindParam('foo', 'root');
$prepared->execute();
foreach($prepared as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
foo doit être remplacé par root. Cependant, ce n'est pas le cas.
Vous semblez avoir accepté une réponse incorrecte, et ignoré la vraie réponse (il vous manque a: dans le bindParam '$ prepare-> bindParam (': foo', 'root') ') – rjmunro