【问题标题】:Zend Framework - Issue with delete from database codeZend Framework - 从数据库代码中删除的问题
【发布时间】:2012-07-24 13:24:04
【问题描述】:

在我的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 字段,可以正常工作。我究竟做错了什么?如果需要,我很乐意提供更详细的代码。谢谢。

【问题讨论】:

    标签: zend-framework zend-db


    【解决方案1】:

    您的查询未被引用:

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

    这相当于:

    WHERE username = test
    

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

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

    或者(如文档中的示例):

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

    【讨论】:

    • 最好这样:$db = $this->getAdapter(); $table->where($db->quoteInto('username = ?', $username));
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多