Bonjour,

https://fmaz.developpez.com/tutoriel...omprendre-pdo/

Sur le tuto il indique que l'on ne peux pas ,de manière élégante, personnaliser une requête avec des placeholders multiples.
Est-ce que c'est toujours le cas ?

J'ai cherché à inclure une valeur par défaut aux argument de ma fonction qui soit "toutes les valeurs disponibles" mais je n'ai pas réussi.

L'objectif est de crée un requêtes multitâche : les arguments optionnels ne servent qu'a préciser la requêtes.
Ex: afficher les chaussure($modèle,$couleur,$pointure,$marque). Si on a les 4 arguments, la requête est précise, si il en manque 1 ou 2 on perd en précision.

Pour l'instant je résous ce problème en fractionnant ma requête et en concaténant le reste en fonction de condition.
Est-ce selon vous une bonne méthode?
Que me conseillez vous ?

J'ai mis un petit exemple ci-dessous pour vous aider à comprendre ma recherche.

Cordialement


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
mafonction($argumentObligatoire,$argumentOptionel=null){
 
// Je crée la requête de base minimum
 
$req="SELECT * FROM maTable Where column1=argumentObligatoire";
 
// En fonction de condition, je concatene le reste de la requetes et je bindvalue
 
if( $argumentOptionel !=null){
$req.="AND column2 = :argumentOptionel"
$pdostatement->bindValue( ':$argumentOptionel', $argumentOptionel, PDO::PARAM_STR );
}
 
$pdostatement=pdo->prepare($req);