2013-05-10 64 views
0

我想弄清楚如何在zend框架中的一個更新()中更新多行。在Zend中更新多行

我有一個名爲id的ID數組,我想更新這些id的所有行的一個字段。

我試圖創建一個WHERE條件類似:

$where = Bootstrap::$db->quoteInto('id_task IN (?)', $ids); 

,然後調用更新方法:

$this->getDbTable()->update(array("deleted" => 1), $where); 

但我有一個語法錯誤或訪問衝突錯誤和我的查詢看起來像這在調試輸出:

array(2) { 
      [0]=> 
      &string(54) "UPDATE `tasks` SET `deleted` = ? WHERE (id_task IN())" 
      [1]=> 
      &array(1) { 
       [0]=> 
       int(1) 
      } 
      } 

有誰知道如何傳遞數組在哪裏更新的方式?

+1

就在'$ where = Bootstrap :: $ db ...'之前,'var_dump($ ids);'show? – drew010 2013-05-10 00:42:19

+0

'IN'運算符會在'UPDATE'中工作嗎?也許試試它作爲'Zend_Db_Expression'而不是'quoteInto()' – RockyFord 2013-05-10 06:24:11

回答

0

也許是這樣的:

$where = Bootstrap::$db->quoteInto('id_task IN (?)', implode(',', $ids)); 

假設你ids是整數,且已經過驗證。