在我的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字段,完全正常。我究竟做错了什么?如果需要,我很乐意提供更详细的代码。感谢。
答案 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);