Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/12/2011, 15h03   #1
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Par défaut if dans un prepare() PDO

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.
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 12h49   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 671
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 671
Points : 5 404
Points : 5 404
Tu peux construire ta requête en morceaux et alimenter un éventuel tableau de paramètres dans des conditions. Quelque chose du genre :
Code :
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)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 20/12/2011, 14h20   #3
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Bonjour et merci pour l'exemple

Court et concis
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 15h19   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonjour,

je completerais la réponse de Celira en améliorant la flexibilité du code :
Code :
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);
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h14.


 
 
 
 
Partenaires

Hébergement Web