警告:mysql_fetch_object():提供的参数不是有效的MySQL结果资源,

时间:2014-10-06 17:17:38

标签: php mysql sql database forms

我正在进行在线资质测试,该测试将从数据库中挑选出2个随机问题,并将其显示在网页上进行回答。

下面的代码是从候选人那里获得答案(简单演示只选择2个随机问题)。

// Build Form   
$nbQuestion = 2;
$form = '<form id="form1" name="quest" method="POST" action="" >';
$form .= getQuestion("SELECT * FROM `microsoftq`  ORDER BY RAND() LIMIT ".$nbQuestion);
$form .= '<input type="submit" id="submit_id" name="SUBMIT" value="SUBMIT"></form>';

// Save answer
if (isset($_POST['SUBMIT'])) 
{
    for($i=1;i<=$nbQuestion;$i++){
        saveAnswer($i);
    }
}
function getQuestion($query){
    $question = "";
    $i = 1;
    $result = mysql_query($query);
    while ($row = mysql_fetch_object($result)) {
        $question .= "<b>Question:-<br></b>".$row->Question." <br><br>";
        $question .= "<input type='hidden' name='q".$i."' value='".$row->QNo."'>";
        $question .= "<input type=radio name = 'answer".$row->QNo."' value = '".$row->Opt1."'></input>$a1 &nbsp &nbsp<br>"; 
        $question .= " <input type=radio name = 'answer".$row->QNo."' value = '".$row->Opt2."'></input>$b1 &nbsp &nbsp<br>"; 
        $question .= " <input type=radio name = 'answer".$row->QNo."' value = '".$row->Opt3."'></input>$c1 &nbsp &nbsp <br>"; 
        $question .= " <input type=radio name = 'answer".$row->QNo."' value = '".$row->Opt4."'></input>$d1 <br><br> ";
        $i++;
    }
    mysql_free_result($result);
}
function saveAnswer($nb){
    $qId=$_POST["q".$nb];
    if (is_numeric($qId)) {
        $query = mysql_query("SELECT * FROM `microsoftq` WHERE QNo=".$qId);
        $rows1 = mysql_fetch_array($query);
        $ans = $rows1['Ans'];
        $opt = $_POST["answer".$qId];
        if($ans==$opt)
        {
            $val="ct";
        }
        else
        {
            $val="wg";
        }
        mysql_query("insert into $username values('$qId','$opt','$val')")
        or die(mysql_error());
    }
}

代码是像错误一样的错误 警告:mysql_fetch_object():提供的参数不是C:\ xampp \ htd中的有效MySQL结果资源,而是在行时($ row = mysql_fetch_object($ result)){

警告:mysql_free_result()要求参数1为资源,在C:\ xampp \ htdocs ....中给出布尔值mysql_free_result($result);

1 个答案:

答案 0 :(得分:3)

您收到第一个错误,因为您没有在您的函数中打开数据库连接。第二个错误是跟进错误,是由同一问题引起的。为了解决这个问题,您可以将连接作为参数传递给函数,或者在函数内部创建新连接。 (如&#39; Jay Blanchard&#39;)

的评论中所述