0

我试图根据条件从数据库中删除记录。查询非常简单,但我仍然得到奇怪的结果。我想在 ZF 做什么:

$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_Db_Statement类(Statement.php)、_stripQuoted方法中。

因此,最终结果不是删除了一条记录,而是清除了整个表。

我已经将文档和 Google 搜索到了与我的情况非常接近的示例。所以我不明白这有什么问题?

Zend 框架版本:1.12

有任何想法吗?

4

1 回答 1

1

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

$where = $db->quoteInto('name = ?', $name).' AND '.$db->quoteInto('surname = ?', $surname);    
$db->delete('users', $where);
于 2013-01-29T10:57:41.200 回答