php - PDO Echo 10 值按降序排列

标签 php mysql pdo

我正在尝试按降序从数据库中回显 10 个数字,就像高分表一样。

这是我的代码

$conn = new PDO("mysql:host=HOST;dbname=NAME", "NAME", "PASSWORD");
$hs = $conn->query("SELECT exp FROM login ORDER BY number DESC LIMIT 10");


<? echo $hs?>

我是 PDO/PHP 新手,我没有收到任何错误,它只是没有从我的表中打印任何内容,它只是空白;/

最佳答案

您必须获取数组中的结果,然后回显数组的元素。

$db = new PDO("mysql:host=$db_hostname;dbname=$database", $db_username, $db_password);

$sql = "SELECT exp FROM login ORDER BY number DESC LIMIT 10";

if ($stmt = $db->query($sql)) //PDO::query() returns a PDOStatement on success or false on failure.
{
    //If we got a PDOStatement as a return value from PDO::Query() fetch the results and echo.

    if($numbers = $stmt->fetchAll(PDO::FETCH_ASSOC)) //This will fetch all results in associative array.
    {
        //If the array contained data, then echo them.
        foreach ($numbers as $num)
        {
            echo $num['exp'] . "<br />";
        }
    }
    else
    {
        //If the PDOStatement returned an empty array. Let us know.
        echo "No data in the array";
    }
}
else
{
    //If PDO::Query returned false, then something is wrong with our query. Or connection or whatever.
     echo "Query failed.";
}

在返回大量结果的查询中,我不会使用 $stmt->fetchAll()。 我会在 while 循环中使用 fetch,如下所示:

$db = new PDO("mysql:host=$db_hostname;dbname=$database", $db_username, $db_password);

$sql = "SELECT exp FROM login ORDER BY number DESC LIMIT 10";

if ($stmt = $db->query($sql)) //PDO::query() returns a PDOStatement on success or false on failure.
{
    //If we got a PDOStatement as a return value from PDO::Query() !!!ECHO WHILE FETCHING!!! 
    while($row = $stmt->fetch(PDO::FETCH_ASSOC)) //This loop will keep going for as many rows as the PDOStatement returns.
    {
        echo $row['exp'] . "<br />";
    }
}
else
{
    //If PDO::Query returned false, then something is wrong with our query. Or connection or whatever.
     echo "Query failed.";
}

第一个代码块和第二个代码块之间的区别在于,在第一个代码块中,我们获取数组中的所有结果并打印它们。在第二个例子中,我们在使用 PDOStatement::fetch() 逐一检索数据时打印数据

关于php - PDO Echo 10 值按降序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18812440/

相关文章:

php - First Data PHP API

php - 对 mysql 代码何时使用 PDO 进行注入(inject)证明感到困惑

mysql - mysql 用户访问被拒绝

javascript - 使用 PHP 在分页中对标题单击进行表排序

PHP PDO fatal error

php - 没有 id 的漂亮链接

php - 我可以在使用 Zend_Db_Adapter_Pdo_Mssql 时设置查询超时吗?

php - 为什么这个 PDO 语句会默默地失败?

php - Laravel Eloquent 地获取所有记录,其中包含多对多关系中的所有 ID

mysql - 检查数据库的所有列是否小于另一个数据库中的值