如何从数据库中检索信息

时间:2014-06-10 15:46:56

标签: php mysql

我有以下代码从数据库中检索信息。它连接到数据库,但当我尝试显示信息时,我什么也看不见。我只能得到 虚线。我认为问题出在while循环中,我只是看不出我的错误在哪里。谁能帮忙?

 $connection = mysql_connect("127.0.0.1","root","xxxxxxxx");
        if (!$connection)
        {
        printf("Can't connect to MySQL Server.", mysqli_connect_error());

        }


    mysql_select_db('xxxxxx') or die ('Could not select database');
        echo 'You have been connected succesfully to your database';

        $query = "SELECT *FROM testing";
        $result = mysql_query($query) or die("Query fail:".mysql_error());


        while ($row = mysql_fetch_array($result));
        {
            echo $row['age']."--".$row['sex']."--".$row['id']."--".$row['country']."--".$row['sport']." ";
        }

        ?>

3 个答案:

答案 0 :(得分:1)

您应该在;之后删除分号(while(...)),因此您的最终代码将如下所示:

while ($row = mysql_fetch_array($result))
{
    echo $row['age']."--".$row['sex']."--".$row['id']."--".$row['country']."--".$row['sport']." ";
}

您的while循环{}之间)中的任何内容都会被调用多次,因为很多行都会返回您的查询。例如,如果您的查询将返回4行,那么您的代码(echo ...)将重复4次。在第一次运行中,变量$row["age"]$row["sex"]$row["id"]$row["country"]将包含第一行的结果。在第二次运行时,这些变量将包含第二行的结果...


另外,请不要使用mysql_*函数,它们是deprecated,将在未来的PHP版本中删除。请改用MySQLiPDO有关详细信息,请参阅Why shouldn't I use mysql_* functions in PHP?

答案 1 :(得分:0)

我遇到了类似的问题,事实证明我的数据库中没有任何信息,而且我的一个值名称不正确。您能否确认数据库中有有效值?

答案 2 :(得分:0)

使用mysqli

$db = new mysqli("localhost","admin","XXXXXX","test");
if($db->connect_errno > 0){
    die('Unable to connect to database [' . $db->connect_error . ']');
}

$query = "SELECT * FROM `testing`";  

if(!$result = $db->query($query)){
    die('There was an error running the query [' . $db->error . ']');
}

// echo $result->num_rows;  Uncomment to make sure there is data being ruturned

while($row = $result->fetch_assoc()){
    echo $row['age']."--".$row['sex']."--".$row['id']."--".$row['country']."--".$row['sport']." ";   
}