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

Zend Framework PHP Discussion :

Update t set c1=c1+10 non fonctionnel avec Zend Update [ZF 1.10]


Sujet :

Zend Framework PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 28
    Points : 30
    Points
    30
    Par défaut Update t set c1=c1+10 non fonctionnel avec Zend Update
    Bonjour à tous,

    J'ai un soucis, uniquement de syntaxe, du moins je l'espère.

    Voilà, je voudrais que ma fonction Zend effectue ce traitement sql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE t SET c1=c1+10;
    Ceci fonctionne très bien dans mon SGBD (Postgres).

    Mais lorsque que je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $db = Zend_Db_Table::getDefaultAdapter();
    $where = $db->quoteInto('id_entities = ?', $id);
    $update = array("c1"=>"c1"+10);
    $this->update($update, $where);
    La valeur de mon tableau, (via var_dump) est égale à "10" et non c1+10.

    Si je fait en sorte d'avoir une string dans mon tableau qui soit la même que celle requise en sql :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $update = array("c1"=>'c1+'.10);
    J'ai une erreur de type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SQLSTATE[22P02]: Invalid text representation: 
    7 ERREUR: syntaxe en entrée invalide
     pour le type double precision : «c1+10 »
    Pour des soucis de fiabilité de l'information je ne peux me permettre de d'abord sélectionner la valeur et ensuite mettre à jour la valeur sélectionnée + 10.

    Merci de m'avoir lu,
    SpaceInvader.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    N'est-il point plus simple de faire ceci?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    $sql = 'UPDATE t SET c1=c1+10 WHERE id_entities = :id '
    $db->query($sql,array(':id'=>$id))

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 28
    Points : 30
    Points
    30
    Par défaut
    Si en effet .

    Je ne sait pas pourquoi je n'ai pas pensé à faire de la requête classique.

    Peux-tu juste me donner la différence entre ton :id et ?.

    Cdlt,
    SpaceInvader.

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 600
    Points
    12 600
    Par défaut
    Salut,

    Ca fait le même boulot, mais je préfère notifier que de mettre des '?', j'ai toujours peur de me tromper

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 28
    Points : 30
    Points
    30
    Par défaut
    Ok, je ne connaissais pas.

    En ce qui me concerne j'adopte cette méthode pour la suite .


    Encore Merci,
    SpaceInvader.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 215
    Points : 171
    Points
    171
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $update = array("c1"=>(new Zend_Db_Expr('c1+10')));

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/11/2013, 23h22
  2. [PHP 5.3] récupération $_files non fonctionnel avec jquery php
    Par Sniperwolf38 dans le forum Langage
    Réponses: 3
    Dernier message: 18/06/2013, 12h01
  3. [AC-2010] état nouvellement non fonctionnel avec access 2010
    Par jfsarrazin dans le forum IHM
    Réponses: 5
    Dernier message: 03/10/2012, 06h07
  4. Page non fonctionnelle avec un DOCTYPE
    Par galeazzo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 11/02/2009, 09h10
  5. Utiliser des fonctions non objets avec Zend
    Par jux dans le forum Zend Framework
    Réponses: 6
    Dernier message: 08/02/2009, 11h58

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