Bonjour,
J'aimerais savoir s'il est possible d'intégrer un if dans un prepare() d'une requête SQL.
En effet, j'aimerais que la structure de ma requête diffère selon une ou plusieurs variables.
Par avance, merci pour vos réponses.
Bonjour,
J'aimerais savoir s'il est possible d'intégrer un if dans un prepare() d'une requête SQL.
En effet, j'aimerais que la structure de ma requête diffère selon une ou plusieurs variables.
Par avance, merci pour vos réponses.
Tu peux construire ta requête en morceaux et alimenter un éventuel tableau de paramètres dans des conditions. Quelque chose du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $requete = "select * from user "; $params = array(); if (isset($id_a_rechercher) { $requete .= " where id_user = :id_user "; $params[':id_user'] = $id_a_rechercher; } $sth = $connexion->prepare($requete); $sth->execute($params);
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.
Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]
Bonjour,
je completerais la réponse de Celira en améliorant la flexibilité du code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $requete = "select * from user"; $where = array(); $params = array(); if (isset($id_a_rechercher) { $where[] = "id_user = :id_user"; $params[':id_user'] = $id_a_rechercher; } if ( ! empty($where)) { $requete .= ' WHERE ' . implode(' AND ', $where); } $sth = $connexion->prepare($requete); $sth->execute($params);
Partager