Zend_Db不删除表行

时间:2012-04-11 10:01:14

标签: database zend-framework frameworks adapter

有人知道,如果删除操作中的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'");

每个变体都可以正常运行但不会执行任何操作。 在这种情况下我该怎么办?

2 个答案:

答案 0 :(得分:1)

使用Zend_Db_Adapter,请尝试:

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

或者,在这种特殊情况下,你可以这样做:

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

(但是如果你使用整数并且你施放它,那么只做这个!)

答案 1 :(得分:1)

在你的模型中(Zend_Db_Table_Abstract):

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

或者

$db = $this->getAdapter();
$db->delete($table, $db->quoteInto("id = ?", $id));