Zend framework2 在Zend 2中执行简单查询问题
我想在zend 2中执行两个查询: 这是我的模型文件的内容:Zend framework2 在Zend 2中执行简单查询问题,zend-framework2,Zend Framework2,我想在zend 2中执行两个查询: 这是我的模型文件的内容: $email = $getData['login_email']; $password = $getData['login_password']; $select = $this->adapter->query ("select count(*) as counter from users where email = '$email' and password = '".md5($pa
$email = $getData['login_email'];
$password = $getData['login_password'];
$select = $this->adapter->query ("select count(*) as counter from users where email = '$email' and password = '".md5($password)."'");
$results = $select->execute();
if ($results->current()['counter'] == 1 ){
// $update_user = $this->adapter->query("UPDATE users SET session_id = '".$session_id."' WHERE email = '".$email."'");
try {
$update_user = $this->adapter->query("select * from users");
} catch (\Exception $e) {
\Zend\Debug\Debug::dump($e->__toString()); exit;
}
$update_session = $update_user->execute();
出于某种原因,如果删除一个随机查询,将执行另一个查询。我知道这很奇怪,但我相信有一个合理的答案。“尝试捕捉”部分的结果是:
我在询问时没有写错。如您所见,我尝试了一个简单的select查询,得到了相同的结果。其实我不知道这是怎么回事。请帮忙,在过去的5-6天里,我在互联网上寻找答案,但什么也没找到。如果你想让我提供更多的信息,请询问。THX正如建议的那样,默认情况下使用无缓冲查询的mysqli驱动程序存在此问题
要解决这个问题,您必须在运行下一个查询之前缓冲第一个查询的结果。对于ZF2,结果接口有一个buffer()方法来实现这一点:
$results = $select->execute();
$results->buffer();
任何人,一些想法?现在我明白了:不能缓冲已经开始迭代的结果集。知道为什么吗?