PHP查询忽略顺序by



我试图显示10行并按最高分排序,代码运行时没有错误,但它仍然只是按照它们出现在数据库中的顺序显示它们。

$questionScore = query('SELECT * FROM questions ORDER BY score = :score DESC LIMIT 10',
array('score' => ['score']),
$conn);

这是我的查询语句-

function query($query, $bindings, $conn)
{
   $stmt = $conn->prepare($query);
   $stmt->execute($bindings);
   $results = $stmt->fetchAll();
   return $results ? $results : false;
}

My function used

是你的函数强迫你在不需要的时候设置绑定

$questionScore = query(
    'SELECT * FROM questions ORDER BY score DESC LIMIT 10',
    array(),
    $conn
);

function query($query, $bindings, $conn)
{
   $stmt = $conn->prepare($query);
   if (!empty($bindings))
       $stmt->execute($bindings);
   $results = $stmt->fetchAll();
   return $results ? $results : false;
}

,甚至重新组织函数的参数,这样就不需要传递不需要的空绑定:

$questionScore = query(
    'SELECT * FROM questions ORDER BY score DESC LIMIT 10',
    $conn
);

function query($query, $conn, $bindings = array())
{
   $stmt = $conn->prepare($query);
   if (!empty($bindings))
       $stmt->execute($bindings);
   $results = $stmt->fetchAll();
   return $results ? $results : false;
}

最新更新