0

有谁知道,删除操作中的 CRUD 是否存在错误。数据库适配器:

$this->_db = Zend_Registry::get("db");

我喜欢这样:

$sql = "DELETE FROM premium_items WHERE id = '$id'";
                    $stmt = new Zend_Db_Statement_Pdo($this->_db, $sql); 
                    return $stmt->execute();

$sql = "DELETE FROM premium_items WHERE id = ?";
                $stmt = new Zend_Db_Statement_Pdo($this->_db, $sql); 
                return $stmt->execute(array($id));

$this->_db->delete('premium_items', "id = '$id'");

每个变体都可以正常工作,但不会做它必须做的事情。在这种情况下我该怎么办?

4

2 回答 2

1

使用Zend_Db_Adapter,尝试:

$this->_db->delete('premium_items', array("id = ?" => $id));

或者,在这种特殊情况下,您可以执行以下操作:

$this->_db->delete('premium_items', 'id = ' . (int)$id);

(但仅当您使用整数并强制转换时才执行此操作!)

于 2012-04-11T10:05:02.463 回答
1

在您的模型中(Zend_Db_Table_Abstract):

$row = $this->find($id)->current();
$row->delete();

或者

$db = $this->getAdapter();
$db->delete($table, $db->quoteInto("id = ?", $id));
于 2012-04-11T10:07:49.390 回答