2014-07-09 24 views
0

我要更新记录,在我的情况下记录的名字是kindOfFood_vote更新与Zend框架的纪录mysql的2

我不太明白,但如何更新特定的记录。 我是这样做的,但它不起作用,所以我认为它是错误的。

首先提出在那里我保存它的变量数据:

$data = array(
      'kindOfFood_name' => $food->kindOfFood_name, 
      'kindOfFood_votes' => $food->kindOfFood_votes += 1, 
); 

插入查询工作正常,但也许可以有一些错误这行代码: “kindOfFood_votes” => $食品 - > kindOfFood_votes + = 1,

这是我被插入或更新:

if ($id == 0) { 
      if ($rowset->count() > 0) { 
       $this->tableGateway->update($data,array('kindOfFood_name' => $kindOfFood_name)); 
      }else{ 
       $this->tableGateway->insert($data); 
      } 

     } 

我看不到的问题。 如果有人能帮助我,我将非常感激。

回答

0

尝试 -

$data = array(
     'kindOfFood_name' => $food->kindOfFood_name, 
     'kindOfFood_votes' => new \Zend\Db\Sql\Expression('kindOfFood_votes + 1'), 
); 

对于单记录本会工作 -

$this->tableGateway->update(
    array(
     'kindOfFood_votes' => new \Zend\Db\Sql\Expression('kindOfFood_votes + 1') 
    ),  
    array('kindOfFood_name' => $kindOfFood_name) 
); 
+0

谢谢!但现在我遇到了问题,我只能更新2次,然后停止工作。我不知道这是否与代码或我的数据库有关。但是再次感谢你! – KimberlyGS