gpt4 book ai didi

php - fatal error 导致没有结果出现(Mysqli)

转载 作者:搜寻专家 更新时间:2023-10-31 21:14:54 25 4
gpt4 key购买 nike

我在脚本中遇到此错误,我认为这是导致搜索栏无法工作的原因:

Fatal error: Call to a member function bind_param() on a non-object in /web/stud/xxx/Mobile_app/previousquestions.php on line 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();

}

?>

最佳答案

这意味着 $stmt 变量未正确设置 - 我认为您需要在 LIKE ? 行之后添加空格,因为您正在连接 GROUP BY之后。

您需要检查生成的 SQL 语句是否正确,以及数据库连接是否正常。

关于php - fatal error 导致没有结果出现(Mysqli),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11106155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com