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 et merci pour l'exemple
Court et concis
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);
- PDO++ : Une nouvelle façon d'utiliser PDO. Billet de blog || Code source
- PhpEcho : Un moteur de rendu en une seule classe ! Nouvelle version (release 2.3.2) publiée le 18/04/2020 : Billet de blog || Code source
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager