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.