Zend Framework DB删除方法剥离值

时间:2013-01-29 10:26:31

标签: php zend-framework zend-db

我试图根据条件从数据库中删除记录。查询非常简单,但我仍然得到奇怪的结果。我想在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

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

delete的第二个参数应该是一个字符串。所以我想你想要:

$where = $db->quoteInto('name = ?', $name).' AND '.$db->quoteInto('surname = ?', $surname);    
$db->delete('users', $where);