PHP MSSQL的活动结果中没有更多的行



我在php中有此代码,如果我尝试单独运行每个循环,但是当我尝试执行嵌套时,而euleloop则将其输出为

的错误
Fatal error: Uncaught PDOException: SQLSTATE[IMSSP]: There are no more rows in the active result set. Since this result set is not scrollable, no more data may be retrieved. in C:xampphtdocssurvey-modulesurvey.php:13 Stack trace: #0 C:xampphtdocssurvey-modulesurvey.php(13): PDOStatement->fetch() #1 {main} thrown in

这是PHP代码

   $survey_detail=$survey->viewSurvey('3');
        $questions=$survey->indexQuestion('3');
        while ($question_header = $header_questions->fetch()){
            while ($question_detail = $questions->fetch()){
                if($question_detail['header']==$question_header['header']){
                echo $question_detail['header'] . "-".$question_detail['question']. "<br>";
                }
            }
        }

MSSQL不允许在嵌套时进行多次获取,因此我所做的就是获取数据并将其放在关联数组中,这是代码。

$question_array = array();
while ($question = $questions->fetch()) {
    $question_push = array('header'=>$question['header'],'question'=>$question['question']);
    array_push($question_array,$question_push);
}
while ($question_validation =$header_questions->fetch()) {
    foreach ($question_array as $key => $value) {
        if($question_validation['header']==$value['header'])
        {
            echo $value['header'] ."-". $value['question'] ."<br>";
        }
    }
}

您可以尝试获取数据并将其比较与null,因为我发现当您获取最后一行时,下一行变为null,然后获取下一个,下一个会抛出异常There are no more rows in the active result set

这很奇怪,不应该工作 - 尝试获取非现有行时,我希望获得false值。

尽管如此 - 它有效,我不会抱怨;(

 $survey_detail=$survey->viewSurvey('3');
        $questions=$survey->indexQuestion('3');
        while (($question_header = $header_questions->fetch()) !== null){
            while (($question_detail = $questions->fetch()) !== null){
                if($question_detail['header']==$question_header['header']){
                echo $question_detail['header'] . "-".$question_detail['question']. "<br>";
                }
            }
        }

最新更新