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

ORM PHP Discussion :

Requete Update qui ne s'exécute pas. [Doctrine]


Sujet :

ORM PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 91
    Points : 58
    Points
    58
    Par défaut Requete Update qui ne s'exécute pas.
    Bonjour à vous tous,

    Voilà je poste ici car j'ai un petit soucis depuis hier, petit mais qui me bloque considérablement.
    En effet, je cherche à mettre à jour ma table après avoir fait mes traitements et faisant une requête update en dql (jusque là rien d'anormal), toutefois quand ça passe sur la requête... rien ne se passe niveau bdd...

    Voici ma requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    $query = Doctrine_Query::create()
                    ->update('MaTable')
                    ->set('lieu', "'$lieu'")
                    ->set('date', 'sysdate')
                    ->set('user', "'$user'")
                    ->where("code = '$code'")
                    ->execute();
    Et cela ne fait rien...

    J'ai essayé de différentes façons :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $query = Doctrine_Query::create()
                    ->update('MaTable')
                    ->set('lieu', '?', $lieu)
                    ...
    et même avec la méthode "sale"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Doctrine_Manager::getInstance()
            ->getCurrentConnection()
            ->execute("UPDATE MaTable SET lieu = '$lieu', date = 'sysdate', user = '$user' WHERE code = '$code'");
    Mais malgré tout ça, je n'y arrive pas...
    Par contre lorsque j'exécute les requêtes générées par Doctrine (avec le ->getSqlQuery) dans mon Oracle SQL Developer, elles s'exécutent parfaitement.

    Mon schéma.yml est bon et je n'ai aucune autre erreur, j'aimerai pouvoir régler mon soucis d'update pour avancer...

    Auriez-vous une solution pour me débloquer ?

    Merci d'avance.

  2. #2
    Membre habitué Avatar de Maerlyn31
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 71
    Points : 167
    Points
    167
    Par défaut
    A première vue tes requêtes m'ont l'air correcte ... personnellement je ne les écrit pas comme ça, mais à tout le moins la troisième que tu propose devrait fonctionner ...
    Peux-tu nous donner des détails sur le contexte dans lequel tu exécute cette requête (Quelle méthode ? Dans quelle classe ? Appelée dans quelle action, sur quel type d'objet ? etc ...) ? C'est sans doute par là que ça coince !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 91
    Points : 58
    Points
    58
    Par défaut
    Bonjour,

    Alors j'utilise des listes déroulantes dont les valeurs sont récupérées par l'objet sfWebRequest $request.

    Avec 2/3 traitements perso je récupère différentes valeurs (rien de critique, qui plus est ils fonctionnent correctement, j'y contrôle grâce à des var_dump réguliers).

    Puis je fais mes requêtes citées plus haut (je simplifie beaucoup volontairement).

    Mon problème étant que lorsque je récupère la requête sql (getSqlQuery()) j'ai bien toutes mes valeurs remplacées comme il le faut etc...
    Seulement... elle ne s'exécute pas :s

  4. #4
    Membre habitué Avatar de Maerlyn31
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2011
    Messages : 71
    Points : 167
    Points
    167
    Par défaut
    Si tu as un objet sfWebRequest, déjà ça veut dire que tu fais du code DQL (donc à priori du code de logique métier) dans une action : c'est tray tray mal !!

    Plus sérieusement ^^ essaie de séparer un peu ton code, déjà on y verra plus clair pour localiser la fonction qui ne fonctionne pas et la débugger, là comme ça on va pas pouvoir t'aider beaucoup : je viens de vérifier la doc Doctrine ta syntaxe est bonne.

    La manière de faire me semble aussi étonnante : en général pour faire des MàJ tu vas récupérer tes objets, travailler dessus en php ( $objet->setLieux($lieu); $objet->setDate(time()) ...) pour faire des save(). C'est tout l'interêt de Doctrine que d'avoir une abstraction au niveau de la BD !
    Après, selon le cas, des requêtes update peuvent être plus adaptées ... encore une foi besoin de plus de détails

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 91
    Points : 58
    Points
    58
    Par défaut
    Merci de ton conseil,

    J'ai en effet récupéré mon objet via un findBy et après mes traitements fait un ->save et voilà

    Merci de ton aide.

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

Discussions similaires

  1. [MySQL] une requête Update qui ne s'exécute pas
    Par DeveX dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/07/2008, 13h37
  2. [SQL] Requête UPDATE qui ne s'exécute pas avec PHP
    Par xplose dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 16/08/2007, 09h42
  3. Requete UPDATE qui ne fonctionne pas
    Par JiB@ dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 02/03/2007, 18h06
  4. probleme de requete mysql qui ne s'exécute pas
    Par anto48_4 dans le forum Requêtes
    Réponses: 6
    Dernier message: 23/03/2006, 10h51
  5. [MySQL] requete sql qui ne s'exécute pas
    Par anto48_4 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 16/03/2006, 09h12

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