使用Zend框架删除多条件的示例

Mic*_*ICE 6 php mysql zend-framework zend-db

有人能给我一个例子,说明当我有两个条件时,如何用Zend框架删除mysql中的一行?

即:(试图这样做)

"DELETE FROM messages WHERE message_id = 1 AND user_id = 2"
Run Code Online (Sandbox Code Playgroud)

我的代码(失败的可怜看起来像这样)

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

$n = $db->delete('messages', $condition);
Run Code Online (Sandbox Code Playgroud)

小智 29

最好用这个:

$condition = array(
    'message_id = ?' => $messageId,
    'profile_id = ?' => $userId
);
Run Code Online (Sandbox Code Playgroud)

占位符符号(?)将替换为值,转义特殊字符,并在其周围应用引号.


gre*_*ama 8

您应该只传入一组条件表达式,而不是关联数组,ala:

$condition = array(
    'message_id = ' . $messageId,
    'profile_id = ' . $userId
);
Run Code Online (Sandbox Code Playgroud)

(并确保如果它们来自用户输入,则适当地转义这些值)