致命错误导致没有结果出现(mysqli的)(fatal error is causing no re

2019-09-18 06:42发布

我得到在我的剧本,我认为是造成搜索栏不上班此错误:

致命错误:调用一个成员函数bind_param()的非对象在/web/stud/xxx/Mobile_app/previousquestions.php上线89上。

它指向该行是这一行:

$stmt->bind_param("s",$each);    

需要为了解决这个错误,做什么? 目前,该错误导致用户在搜索栏内提交的内容后没有结果出现。

  <?php

        //connect to db

          $questioncontent = (isset($_POST['questioncontent'])) ? $_POST['questioncontent'] : '';

        ?>

        <?php 

        if (isset($_GET['searchQuestion'])) {

        $searchquestion = $questioncontent;
        $terms = explode(" ", $searchquestion);
$parameters = array();

        $questionquery = "
        SELECT q.QuestionId, q.QuestionContent, o.OptionType, q.NoofAnswers, GROUP_CONCAT(an.Answer ORDER BY an.Answer SEPARATOR ' ') AS Answer, r.ReplyType, 
               q.QuestionMarks 
          FROM Answer an 
          INNER JOIN Question q ON q.AnswerId = an.AnswerId
          JOIN Reply r ON q.ReplyId = r.ReplyId 
          JOIN Option_Table o ON q.OptionId = o.OptionId 

                         WHERE ";

        $i=0;
        foreach ($terms as $each) {     
            $i++;         

            if ($i == 1){         
                $questionquery .= "q.QuestionContent LIKE ?";     
                } else {         
                    $questionquery .= "OR q.QuestionContent LIKE ?";    
                     } 
                     }  

                     $questionquery .= "GROUP BY q.QuestionId, q.SessionId ORDER BY "; $i = 0; foreach ($terms as $each) {     
                         $i++;      

            if ($i != 1)         
            $questionquery .= "+";     
            $questionquery .= "IF(q.QuestionContent LIKE ?,1,0)"; 
            } 

            $questionquery .= " DESC "; 

            $stmt=$mysqli->prepare($questionquery);      
    $parameters[] = ($each)   
    $stmt->execute($parameters);  
            $stmt->bind_result($dbQuestionId,$dbQuestionContent,$dbOptionType,$dbNoofAnswers,$dbAnswer,$dbReplyType,$dbQuestionMarks); 
            $questionnum = $stmt->num_rows();

        }

    ?>

Answer 1:

这意味着$语句变量没有被正确设置-我认为你需要在之后的空间LIKE ? 行,因为你concatening GROUP BY之后它。

你需要检查你正在生成SQL语句是正确的,并且数据库连接也在努力。



文章来源: fatal error is causing no results to appear (Mysqli)
标签: php mysqli