Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Zend Framework DB delete方法带值_Php_Zend Framework_Zend Db - Fatal编程技术网

Php Zend Framework DB delete方法带值

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

我正在尝试从数据库中删除记录,具体取决于位置条件。这个查询很简单,但我还是得到了奇怪的结果。我在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\u Db\u语句
类(Statement.php),
\u stripQuoted
方法中

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

我已经红了文档,还用谷歌搜索了一些与我的情况非常接近的例子。所以我不明白这有什么不对

Zend框架版本:1.12


有什么想法吗?

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

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

实际上,这个问题在我的剧本中有点深奥。但不管怎样,你的例子效果很好。谢谢