通常情况下,这对我有用:
$db = Zend_Db_Table::getDefaultAdapter();
$where = $db->quoteInto('id = ?', $id);
$db->delete('tablename', $where);
但我必须匹配两个ID。所以我真的不知道如何构建它。
WHERE first_id = 'id1' AND second_id = 'id2'
那么我如何使用Zend Framework做到这一点?
答案 0 :(得分:58)
延伸Jason W的答案:
不完全确定第3部分是什么 正在说
这意味着你可以这样做:
$db->delete('tablename', array(
'first_id = ?' => $first_id,
'second_id = ?' => $second_id
));
适配器将为您报出所有内容。
我觉得文档不是很清楚。
答案 1 :(得分:20)
来自删除()的zend manual:
如果省略第二个参数,那么 结果就是所有的行 数据库表已删除。
如果你提供一个字符串数组 第二个参数,这些字符串是 作为一个术语联合在一起 表达式由AND运算符分隔。
如果您提供数组数组 第二个参数,值 将被自动引用到 键。然后将加入这些 作为术语,由AND分开 运算符。
不完全确定第3部分的内容,但第2部分暗示您可以这样做:
$where = array();
$where[] = $db->quoteInto('first_id = ?', $first_id);
$where[] = $db->quoteInto('second_id = ?', $second_id);
$db->delete('tablename', $where);
答案 2 :(得分:1)
如果你在扩展类Zend_Db_Table_Abstract的模型中,你需要使用不同的结构:
class Yourmodel extends Zend_Db_Table_Abstract {
protected $_name = 'tablename';
protected $_primary = 'primarykey';
public function remove($first_id, $second_id) {
$where = array();
$where[] = $this->getAdapter()->quoteInto('first_id = ?', $first_id);
$where[] = $this->getAdapter()->quoteInto('second_id = ?', $second_id);
$this->delete($where);
}
}