2009-05-22 43 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);