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 :

Problème de requette avec pdo [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 57
    Par défaut Problème de requette avec pdo
    Bonjour,
    Le code ci-dessous ne fonctionne pas à partir de la zone en rouge,
    Il me met une erreur :

    Call to a member function bindParam() on a non-object

    Je ne comprend pas pourquoi car pourtant tout à l'air bon j'ai tapé la requette ds phpmyadmin, elle est correct, mais la elle ne veut pas s'exécuter

    $db = connexion::getInstance();
    $conn = $db->getDbh();
    ces deux ligne de dessus servent à intencier la classe PDO;
    Ce fonctionne très bien , car pour d'autres section de mon application tout est bon.
    Il n'y a que la.

    Peut être il aime pas les 2 update qui s'éxécute l'un après l'autre.

    Mais bon j'ai quand même besoin de fair eun update sur 2 table différente


    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
       function update($idrub,$intitule,$title,$menu,$description,$keyword,$type,$idcontien){//mise à jour
           $db = connexion::getInstance();
            $conn = $db->getDbh();
        
     $up="UPDATE rubrique SET
    `INTITULE`=:intitule,
    `NIVEAUX`=:niveaux,
    `TYPE`=:type,
    `MENU`=:menu,
    `TITLE`=:title,
    `KEYWORD`=:keyword,
    `DESCRIPTION`=:description,
    `URL`=:url
    WHERE ID_RUBRIQUE=:idrub";
    $requp=$conn->prepare($up);
    $requp->bindParam('idrub',$idrub);
    $intitule=stripslashes($intitule);
    $title=htmlentities(stripslashes($title),ENT_NOQUOTES,'UTF-8');
    $menu=stripslashes($menu);
    $description=htmlentities(stripslashes($description),ENT_NOQUOTES,'UTF-8');
    $keyword=htmlentities(stripslashes($keyword),ENT_NOQUOTES,'UTF-8');
    $requp->bindParam('menu',$menu);
    $requp->bindParam('intitule',$intitule);
    
    /*recuperation du menu parent DEBUT*/
        $selniv="SELECT NIVEAUX FROM rubrique WHERE rubrique.ID_RUBRIQUE=:contien";
        $reqiniv=$conn->prepare($selniv);
        $reqiniv->bindParam('contien',$idcontien);
        $reqiniv->execute();
        $niv=$reqiniv->fetch(PDO::FETCH_BOTH);//on recupere le niveaux du menu parent dans un tableau
    /*recuperation du menu parent FIN*/
    
    if($niv['NIVEAUX']==0){
       $niveau=1;
    }else{
    $niveau= $niv['NIVEAUX']+1;}
    
    $requp->bindParam('niveaux',$niveau);
    $requp->bindParam('type',$type);
    $requp->bindParam('title',$title);
    $requp->bindParam('keyword',$keyword);
    $requp->bindParam('description',$description);
    $url=html_entity_decode($menu);
    $url=rubrique::stripAccents($url);
    $url=strtolower($url);
    $url=str_replace("'","",str_replace(' ','_',$url));
    $requp->bindParam('url',$url);
    $requp->execute();
    
    $up2="UPDATE contien SET
    contien.ID_RUBRIQUE_1=:contien
    WHERE contien.ID_RUBRIQUE=:idrub";
    $requp2=$conn->prepare($up2);
    echo $idrub.'-'.$idcontien;
    $requp2->bindParam('contien',$idcontien);
    $requp2->bindParam('idrub',$idrub);
    $requp2->execute();
        }
    Si vous pouviez m'aider

    Cordialement Guillaume Escande

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    bonjour, je pense que c'est parce que tu omets de mettre les : dans tes bindParam

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $requp->bindParam(':niveaux',$niveau);
    $requp->bindParam(':type',$type);
    // --- etc...

    EDIT: autre chose :

    tu peux remplacer ca :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if($niv['NIVEAUX']==0) {
            $niveau=1;
    }else {
            $niveau= $niv['NIVEAUX']+1;
    }

    par ca :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $niveau= $niv['NIVEAUX']+1;

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 57
    Par défaut les :
    Je ne pense pas que ca vien de ca parque j'ai essayé sur une autre application et avec ou sans ca marche pas quand même.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    L'erreur signifie que le prepare n'a pas fonctionné.

    Affiche les erreurs PDO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 57
    Par défaut
    EE ok je vois le principe d'afficher les erreur,

    Mais je la met ou cette ligne :

    Par exemple je la met la :

    $up2="UPDATE contien SET
    contien.ID_RUBRIQUE_1=:contien
    WHERE contien.ID_RUBRIQUE=:idrub";
    $requp2=$conn->prepare($up2);
    echo $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $requp2->bindParam('contien',$idcontien);
    $requp2->bindParam('idrub',$idrub);
    $requp2->execute();

    mais le echo ne me retourne rien

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    tu peux la mettre au moment ou tu crées la connexion.
    Mais pas après l'erreur
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 57
    Par défaut closeCursor() c'est la clef !!!
    Bon je me suis pris la tete pour rien c'est just que il y avait trop de requette à la suite pour lui donc il n'arrive pas à gérer le truc.

    donc avec un petit

    closeCursor ca permet à PDO de soufler lol

    Je le rajoute à chaque fin de requette complete comme ca je suis tranquillej'ai pas se problème.

    Par contre se pourrait til que ca vienne du serveur ses erreur, parceque j'était sur ovh avent et javais pas ses erreurs.

    Et sur ce serveur si !

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

Discussions similaires

  1. probléme avec PDO fetch
    Par ryodo dans le forum Langage
    Réponses: 9
    Dernier message: 26/04/2011, 15h27
  2. [PDO] Problème de requête avec PDO
    Par methos1435 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/10/2010, 02h39
  3. [PDO] Un problème avec PDO
    Par magmus dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/10/2009, 16h47
  4. [PDO] Problème avec PDO depuis migration
    Par XData dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 23/07/2009, 16h33
  5. Problème requette avec valeur NULL
    Par Destiny dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/05/2007, 08h35

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