Php Zend Framework DB delete方法带值
我正在尝试从数据库中删除记录,具体取决于位置条件。这个查询很简单,但我还是得到了奇怪的结果。我在ZF尝试做什么:Php Zend Framework DB delete方法带值,php,zend-framework,zend-db,Php,Zend Framework,Zend Db,我正在尝试从数据库中删除记录,具体取决于位置条件。这个查询很简单,但我还是得到了奇怪的结果。我在ZF尝试做什么: $where = array( $db->quoteInto('name = ?', $name), $db->quoteInto('surname = ?', $surname) ); $db->delete('users', $where); 尝试调试时,我得到: DELETE F
$where = array(
$db->quoteInto('name = ?', $name),
$db->quoteInto('surname = ?', $surname)
);
$db->delete('users', $where);
尝试调试时,我得到:
DELETE FROM `users` WHERE (name = 'John') AND (surname = 'Johnson')
什么是正确且有效的SQL语句。但后来我的值被剥离了,所以我得到了如下查询:
DELETE FROM `users` WHERE (name = ) AND (surname = )
根据调试结果,这种情况发生在Zend\u Db\u语句
类(Statement.php),\u stripQuoted
方法中
因此,最终结果不是删除一条记录,而是清除了整个表
我已经红了文档,还用谷歌搜索了一些与我的情况非常接近的例子。所以我不明白这有什么不对
Zend框架版本:1.12
有什么想法吗?删除的第二个参数应该是字符串。所以我想你想要:
$where = $db->quoteInto('name = ?', $name).' AND '.$db->quoteInto('surname = ?', $surname);
$db->delete('users', $where);
实际上,这个问题在我的剧本中有点深奥。但不管怎样,你的例子效果很好。谢谢