-4

我试图从数据库中获取值,但它显示“mysql_fetch_array() 期望参数 1 是资源,在第 15 行的 C:\wamp\www\kcms\a.php 中给出的布尔值”错误。有人能帮我吗?

    <?php
    //include 'functions.php';
    $con = mysql_connect("localhost","Akash","kaka123");
    if (!$con)
    {
    die('Could not connect: ' . mysql_error());
    }
    $student = false;
    $teacher = false;
    $office = false;
    $username = 56;
    $password = 38;
    $query= "SELECT Register_no , Password FROM student profile WHERE Register_no=$username AND Password=$password" ;
    $result = mysql_query($query, $con);
    $prnt=mysql_fetch_array($result);
    if ($prnt[0]==NULL) 
    {
        $auth=0;
    }
    else
    {
        $auth=1;
        $student= true;
    }
    if ($auth==0) 
    {
        $query= "SELECT Staff_id , Password FROM staff profile WHERE Staff_id=$username AND Password=$password" ;
        $result = mysql_query($query, $con);
        $prnt=mysql_fetch_array($result);
        if ($prnt[0]=NULL) 
        {
            $auth=0;
        }
        else
        {
            $auth=1;
            $teacher = true;
        }
    }    
    if ($auth==0) 
    {
        $query= "SELECT Staff_id , Password FROM office staff WHERE Staff_id=$username AND Password=$password" ;
        $result = mysql_query($query, $con);
        $prnt=mysql_fetch_array($result);
        if ($prnt[0]==NULL) 
        {
            $auth=0;
        }
        else
        {
            $auth=1;
            $office = true;
        }
    }
    echo $username; 
    ?>

有人可以尽快回复吗?

4

1 回答 1

-1

错误消息实际上非常准确且很有帮助。mysql_fetch_array()在需要资源的地方使用布尔值调用。如果您查看 的文档mysql_query(),您会看到它FALSE在失败时返回,这是一个布尔值。该值存储在 中$result,然后传递给mysql_fetch_array()。因此,您的 SQL 查询会发生错误。您可以像这样检查错误:

$result = mysql_query("SELECT Register_no , Password FROM student profile WHERE Register_no=$username AND Password=$password") or die(mysql_error());

话虽如此,您在“学生”和“个人资料”之间有一个不应该存在的空间。您可能打算在此处添加下划线?

另外,请考虑使用 MySQLi 或 PDO,因为不推荐使用 mysql_* 扩展。我只是在这里放下名字,所以请花时间阅读这些内容。

于 2013-02-05T17:47:42.437 回答