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 :

[PDO] Requête qui n'update pas le champ [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 92
    Par défaut [PDO] Requête qui n'update pas le champ
    Salut à tous,

    Le problème est bien simple, j'ai une requête aussi basique qu'explicite qui, pour une raison que j'ignore encore, ne met pas le champ à jour.

    La voilà:

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = "UPDATE users "; // create mysql update query
    $sql .= "SET password = :password ";
    $sql .= "WHERE email = :email ";
    $sql .= "LIMIT 1";
    $stmt = $dbh->prepare($sql);
    $stmt->bindParam(":password",$encrypted);
    $stmt->bindParam(":email",$email);
    $count = $stmt->execute();

    J'ai essayé la manière fondamentale avec password = ? et email = ? mais ça ne fonctionne pas mieux

    Le count retourne pourtant "true" et aucun warning ou erreur à signaler... C'est juste que dans la base, le champ password ne se met pas à jour...

    Une idée?

    Merci d'avance

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    la gestion des erreurs est activée ?
    http://php.net/manual/fr/pdo.error-handling.php

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 92
    Par défaut
    Merci pour vos réponses!

    Citation Envoyé par stealth35 Voir le message
    la gestion des erreurs est activée ?
    http://php.net/manual/fr/pdo.error-handling.php
    Malheureusement oui :/ et RAS

    Citation Envoyé par gene69 Voir le message
    si tu m'avais dit "ORACLE" je t'aurais répondu: C O M M I T.

    mais vu que tu précises pas quelle couche d'accès à la bd tu utilises...

    essaie avec les paramètres en dur.
    En raw...

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $sql = "UPDATE users "; // create mysql update query
    $sql .= "SET password = $encrypted ";
    $sql .= "WHERE email = $email ";
    $sql .= "LIMIT 1";
    /*
    $stmt = $dbh->prepare($sql);
    $stmt->bindParam(":password",$encrypted);
    $stmt->bindParam(":email",$email);
    */
    $count = $dbh->query($sql);

    ...ça fonctionne mais c'est pas beau euh euh

    Entre temps, je me suis rendu compte que $encrypted n'était pas mis entre apostrophes mais maintenant oui et le problème persiste.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    c'est exec ou $count = $stmt->rowCount();

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2007
    Messages : 92
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    c'est exec ou $count = $stmt->rowCount();
    Comment ça?

    J'ai testé du select et c'est la même chose, ça passe en dur mais pas en bind, une idée pourquoi?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    execute renvoie que true ou false ...
    il faut faire rowCount pour savoir le nombre de lignes changées

  7. #7
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    si tu m'avais dit "ORACLE" je t'aurais répondu: C O M M I T.

    mais vu que tu précises pas quelle couche d'accès à la bd tu utilises...

    essaie avec les paramètres en dur.

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

Discussions similaires

  1. [MySQL] Une requête update qui ne renvoie pas d'erreur mais qui n'update pas
    Par Marc22 dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 16/06/2010, 17h59
  2. [MySQL] un update qui ne met pas les champs à jour
    Par naazih dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/05/2008, 21h44
  3. [php-mysql] requête qui ne marche pas....
    Par sanosuke85 dans le forum Requêtes
    Réponses: 1
    Dernier message: 09/01/2006, 17h18
  4. Une requête qui ne reconnait pas is not null
    Par LeBauw dans le forum Access
    Réponses: 2
    Dernier message: 08/09/2005, 12h29
  5. Requête qui ne passe pas
    Par TheBart dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/08/2005, 10h12

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