0
votes

La requête MySQL avec "Où titre comme% Post%" renvoie un résultateur vide

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: xxx

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:

base de données.php: xxx

blogpostS.php: xxx

Juste pour que nous soyons clairement, getblogpostswithtag () fonctionne bien, mais ce très similaire getblogpostswithname ($ terme) ne renvoie rien à la base de données. < p> search.php: xxx

Je m'attends à la méthode getblogpostswithname ($ terme) 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.


4 commentaires

Comme%: Terme% doit être comme '%: terme%' voir manuel ..


Vous devez ajouter les caractères génériques à la chaîne, pas à votre espace réservé. Titre comme: terme , puis bindaram (": terme", "%". $ terme. '%');


@AYNBER I Obtenir l'erreur suivante: Erreur fatale: ne peut pas passer le paramètre 2 par référence


Oh, à droite, parce que vous utilisez Binkparam et non BindValue. Essayez $ TERM = '%'. $ TERME. '%'; Avant le BINDPARAM, puis transmettez simplement la variable.


3 Réponses :


3
votes

Modifier ceci: xxx

à ceci: xxx


2 commentaires

Je reçois l'erreur suivante: Erreur fatale: impossible de passer le paramètre 2 par référence


Essayez-le maintenant, plz.



1
votes

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 . '%');


0 commentaires

0
votes

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 . "%");


1 commentaires

Un paramètre ne peut pas avoir des missions. C'est seulement un nom de variable.