我试图根据条件从数据库中删除记录。查询非常简单,但我仍然得到奇怪的结果。我想在ZF做什么:
$where = array(
$db->quoteInto('name = ?', $name),
$db->quoteInto('surname = ?', $surname)
);
$db->delete('users', $where);
尝试调试Im时:
DELETE FROM `users` WHERE (name = 'John') AND (surname = 'Johnson')
什么是正确且有效的SQL语句。但后来我的价值被剥夺了,所以我得到这样的查询:
DELETE FROM `users` WHERE (name = ) AND (surname = )
根据调试结果,这发生在Zend_Db_Statement
类(Statement.php),_stripQuoted
方法中。
所以最后结果而不是删除了一个记录我得到整个表清除。
我已经删除了文档,并且Google也提供了与我的情况非常接近的示例。所以我没有弄到这有什么问题?
Zend Framework版本:1.12
有什么想法吗?
答案 0 :(得分:1)
delete的第二个参数应该是一个字符串。所以我想你想要:
$where = $db->quoteInto('name = ?', $name).' AND '.$db->quoteInto('surname = ?', $surname);
$db->delete('users', $where);