我试图显示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;
}