Zend Framework - 从数据库代码中删除的问题

时间:2012-07-24 13:24:05

标签: zend-framework zend-db

在我的Application_Model_DbTable_User中,我有以下功能:

public function deleteUser($username)
{
    $this->delete('username = ' . (string) $username);
}

我的AdminController正在使用这三行代码调用此函数。

$uname = $this->getRequest()->getParam('username');
$user = new Application_Model_DbTable_User();
$user->deleteUser($uname);

然而,这个错误出现了。

  

未找到列:1054'where子句'中的未知列'test'

测试是我想要删除的用户。

此代码改编自先前的代码,该代码基于id删除,INT字段,完全正常。我究竟做错了什么?如果需要,我很乐意提供更详细的代码。感谢。

1 个答案:

答案 0 :(得分:2)

您的查询未引用:

$this->delete('username = ' . (string) $username);

这相当于:

WHERE username = test

如果您使用where()方法,它将为您执行此操作:

$table->where('username = ?', $username);

或(与文档中的示例一样):

$where = $table->getAdapter()->quoteInto('bug_id = ?', 1235);
$table->delete($where);