2014-07-09 21 views
0

Я хочу, чтобы обновить запись, в моем случае имя записи является kindOfFood_voteобновление записи MySQL с Zend Framework, 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

Try -

$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