IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Requête préparée [PDO]


Sujet :

PHP & Base de données

Vue hybride

Yoshio Requête préparée 22/05/2007, 11h59
Korko Fain essaye de passer plusieurs... 23/05/2007, 12h24
Yoshio C'est justement ce que je ne... 23/05/2007, 13h17
Korko Fain Syntaxe MySQL : SET... 23/05/2007, 15h06
Yoshio Ca répond pas tout a fait ma... 23/05/2007, 21h31
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut Requête préparée
    Bonjour,

    J'ai un "petit soucis" avec cette requête. Comme vous le verrez plus bas j'ai plusieurs fois :campaign et :member qui dans la requête ont exactement la même valeur.
    Pourtant la requête comme ci ne fonctionne pas. Il me dit nombre de paramètre insuffisant.

    Ne faite pas attention à la requête c'est juste un exemple.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    $sql = $db->prepare('
    	SELECT mission_id, mission_name, complete_normal, complete_hard
    	FROM missions INNER JOIN complete
    	ON (mission_campaign = complete_campaign)
    	AND (mission_id = complete_mission)
    	WHERE mission_campaign = :campaign
    	AND complete_member = :member
    	UNION
    	SELECT mission_id, mission_name, 0, 0
    	FROM missions
    	WHERE mission_campaign = :campaign
    	AND mission_id NOT IN
    	(SELECT mission_id
    	FROM missions INNER JOIN complete
    	ON (mission_campaign = complete_campaign)
    	AND (mission_id = complete_mission)
    	WHERE mission_campaign = :campaign
    	AND complete_member = :member)
    ');
    
    $sql->execute(array(
    	':campaign' => 1,
    	':member' => $_SESSION['member_id'],
    ));

    Si je met des nom différent pour chaque fois que :campaign apparait ca passe.

    Est ce qu'il faut utiliser autre chose que execute() pour pouvoir laisser :campaign 3 fois ?

    C'est assez nul en tout cas de pas pouvoir faire ca.

  2. #2
    Membre émérite Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Par défaut
    essaye de passer plusieurs fois le meme parametre. Si tu l'a entré 3 fois, entre 3 fois la définition du parametre. J'ai la meme chose en delphi :p

    Au pire, insere une variable dans ta requete :
    (syntaxe MS SQL)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE campaign INTEGER;
    DECLARE member INTEGER;
    SELECT @campaign = :campaign, @membre = :member;
    Et plus bas dans ton code, tu utilises @campaign à la place de :campaign

  3. #3
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    Citation Envoyé par Korko Fain
    Si tu l'a entré 3 fois, entre 3 fois la définition du parametre.
    C'est justement ce que je ne veux pas faire !

    Au pire, insere une variable dans ta requete :
    (syntaxe MS SQL)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE campaign INTEGER;
    DECLARE member INTEGER;
    SELECT @campaign = :campaign, @membre = :member;
    Et plus bas dans ton code, tu utilises @campaign à la place de :campaign
    Je suis avec MySQL.

  4. #4
    Membre émérite Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Par défaut
    Syntaxe MySQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SET @campaign = :campaign;
    SET @member = :member;
    http://dev.mysql.com/doc/refman/5.0/fr/variables.html

    GIYF

  5. #5
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Par défaut
    Ca répond pas tout a fait ma question mais ca passe.
    Merci

  6. #6
    Membre émérite Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Par défaut
    N'ayant pas réponse à ta question directement j'ai juste chercher à dépasser le probleme voila tout Mais le probleme n'est pas résolu dans le sens pur, à savoir est-il possible dans PDO (il ne l'est pas dans certains SGBD en tous cas) d'utiliser la meme variable à plusieurs endroits.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PDO] Affichage d'une requête préparée
    Par Tchupacabra dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/02/2010, 03h48
  2. [PDO] une requête préparée pour un insert avec jointure?
    Par seïna dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/08/2008, 00h34
  3. [PDO] Requête préparée, retour d'erreur à masquer
    Par speedev dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 20/06/2007, 10h39
  4. [PDO] Problème de requête préparée (à n'y rien comprendre?)
    Par waldo2188 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 20/03/2007, 21h53
  5. [PDO] Ma requêtes préparées me retourne false
    Par jeff_! dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 03/05/2006, 22h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo