2011-12-06 6 views
0

Je ne peux pas mettre à jour une entrée dans ma table. Le code J'utilise est ci-dessous:Zend db table - save() pas d'enregistrement

class Model_Notification extends Zend_Db_Table_Abstract 
{ 
    protected $_name = "notifications"; 
    public function encrypt($id,$key) 
    { 
     $select = $this->select(); 
     $select->where('id = ?', $id); 
     $row = $this->fetchRow($select); 

     if($row) 
     { 
      $row->key = $key; 
      $row->save(); 
      return true; 
     } 
     return false; 

    } 
} 

Au début, je pensais que ce pourrait être le nom de la colonne « clé », donc je l'ai changé pour « code d'accès », mais sans succès. Je deviens vrai retourné à moi à chaque fois!

Je peux encore ajouter/supprimer à la table, mais je canon comprend pourquoi cette mise à jour save() ne fonctionne pas!

Cheers,

Répondre

1

Plus optimisé façon

$table = new Table(); 
$data = array(
    "field1" => "value1", 
    "field2" => "value2" 
); 
$where = $table->getAdapter()->quoteInto("id = ?",$id); 


$table->update($data, $where); 
+0

Où et comment obtenez-vous le nom de la table mise à jour? –

2

Essayez ceci:

 
$data = array(
    "field1" => "value1", 
    "field2" => "value2" 
); 
$where = "id = " . $id; 

$table = new Table(); 
$table->update($data, $where);