2009-05-22 46 views
6

有人可以給我一個例子,說明當我有兩個條件時,如何用Zend框架刪除mysql中的一行?使用Zend框架刪除多條件示例

即:(試圖做到這一點)

"DELETE FROM messages WHERE message_id = 1 AND user_id = 2" 

我的代碼(即慘遭失敗),這樣,

// is this our message? 
$condition = array(
        'message_id = ' => $messageId, 
        'profile_id = ' => $userId 
); 

$n = $db->delete('messages', $condition); 

回答

8

相反的關聯數組,你應該只傳遞一個標準表達式陣列,ala:

$condition = array(
    'message_id = ' . $messageId, 
    'profile_id = ' . $userId 
); 

(並確保您避開那些適合的值伊利,如果他們是從用戶輸入來)

+0

這會不會站出來爲: 「DELETE FROM消息其中,message = 1 AND USER_ID = 2」 或「DELETE FROM消息WHERE(MESSAGE_ID = 1) (user_id = 2)? – MichaelICE 2009-05-22 20:55:26

+0

我相信第一個 – xenon 2009-05-22 22:25:24

29

最好使用這樣的:?

$condition = array(
    'message_id = ?' => $messageId, 
    'profile_id = ?' => $userId 
); 

佔位符號()得到取代的價值觀,轉義特殊字符,並圍繞它適用的報價。

-3

利用這一點,它的工作...

$data = array(
    'bannerimage'=>$bannerimage 
); 

$where = $table->getAdapter()->quoteInto('id = ?', 5); 

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