J'ai commencé à écrire un système de gestion de contenu en PHP. Je dois exécuter la requête SQL suivante contre une table de base de données: Cette requête renvoie un ensemble de résultats vide et aucune donnée n'est imprimée sur une page Web PHP. Voici mon code: P> base de données.php: p> blogpostS.php: p> Juste pour que nous soyons clairement, Je m'attends à la méthode getblogpostswithtag () code> fonctionne bien, mais ce très similaire getblogpostswithname ($ terme) code> ne renvoie rien à la base de données. P> < p> search.php: p> getblogpostswithname ($ terme) code> Pour renvoyer certaines données de la table de base de données, mais le réel Le résultat est que rien n'est retourné / écho à la page Web PHP. p> p>
3 Réponses :
Modifier ceci: à ceci: p>
Je reçois l'erreur suivante: Erreur fatale: impossible de passer le paramètre 2 par référence code>
Essayez-le maintenant, plz.
Un espace réservé doit être seul. Soit concaténer les caractères génériques sur la variable, soit dans le SQL Concat le % code> S avec l'espace réservé. $sql = "select * from blogposts where title like :term";
$this->statement = $this->connection->prepare($sql);
$this->statement->bindValue(":term", '%' . $term . '%');
Comme mentionné ci-dessus par d'autres personnes, vous devez avoir% de caractères à l'intérieur du paramètre.
$this->statement->bindParam("term", "%" . $term . "%");
Un paramètre ne peut pas avoir des missions. C'est seulement un nom de variable.
Comme%: Terme% Code> doit êtrecomme '%: terme%' code> voir manuel ..Vous devez ajouter les caractères génériques à la chaîne, pas à votre espace réservé.
Titre comme: terme code>, puisbindaram (": terme", "%". $ terme. '%'); code>@AYNBER I Obtenir l'erreur suivante:
Erreur fatale: ne peut pas passer le paramètre 2 par référence code>Oh, à droite, parce que vous utilisez Binkparam et non BindValue. Essayez
$ TERM = '%'. $ TERME. '%'; Code> Avant le BINDPARAM, puis transmettez simplement la variable.