简体   繁体   English

如何使用PHP从mysql中正确检索数据?

[英]How to retrieve data properly from mysql using php?

I am getting this error Fatal error: Call to a member function RecordCount() on boolean on this line if($results->RecordCount()>0) when i am trying to retrieve data from MYSQL and display into a table. 我收到此错误致命错误:当我尝试从MYSQL检索数据并显示到表中时,调用此行上的布尔值上的成员函数RecordCount()if($ results-> RecordCount()> 0)。 I try a lot of solution but it still getting the error. 我尝试了很多解决方案,但它仍然得到了错误。 Below is my php code 下面是我的PHP代码

    if (!$conn) 
    {
       die("Failed to connect to database : " . $dsn);
    }
    else 
    {
        //database connection ok
        ADOdb_Active_Record::SetDatabaseAdapter($conn);
        if($category=='4')
        {
            $query= $conn->prepare("SELECT * FROM profiles");
            $results=$conn->Execute($query); 
        } 
        else if ($category=='3')
        {
            $query= $conn->prepare("SELECT * FROM profiles WHERE biography LIKE ?");
            $results=$conn->Execute($query); 
        }
        else if ($category=='2')
        {
            $query= $conn->prepare("SELECT * FROM profiles WHERE ranks = ?");
            $results=$conn->Execute($query); 
        }
        else if ($category=='1')
        {
            $query= $conn->prepare("SELECT * FROM profiles WHERE nationality LIKE ?");
            $results=$conn->Execute($query); 
        }
        else
        {

        }

        if($results->RecordCount()>0)
        {
            while(!$results->EOF)
            {
                //if($results->RecordCount()>0)
                //{
                echo "<table border='1' cellpadding='5'>"
                . "<tr><th>Name</th><th>Nationality</th><th>Current Score</th><th>Current Standings</th><th>Event Participate</th><th>Team</th><th>Bike</th><th>Picture</th>"; 
                echo "<tr><td>".$results->fields[1]."</td><td>".$results->fields[2]."</td><td>".$results->fields[3]."</td> <td>".$results->fields[4]."</td> 
                <td>".$results->fields[5]."</td> <td>".$results->fields[6]."</td> <td>".$results->fields[7]."</td> <td>><img src='loadimage.php?id=".$results->fields[0]."' height='100' /></td></tr>";
                echo "</table><br/>";
                $results->MoveNext();
                 }
        }
        else
        {
           echo "There is no match record. <br/><br/>";
        }
    }
        $results->close();
    }

Your error is caused by $results being false. 您的错误是由$ results为false引起的。 That means that the query failed and it's probably because you don't seem to be providing the parameters to replace the "?" 这意味着查询失败,这可能是因为您似乎没有提供替换“?”的参数。 In your queries. 在您的查询中。

You can check your db errors using 您可以使用检查数据库错误

$conn->ErrorMsg()

When $results===false 当$ results === false时

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM