function getGamesBySearch($criteria) {
try {
$sortedBy = 'Name';
$db = getDBConnection();
$query = "SELECT *
FROM game
WHERE Name LIKE :criteria
ORDER BY :sortBy DESC";
$statement = $db->prepare($query);
$statement->bindValue(':criteria', '%'.$criteria.'%');
$statement->bindValue(':sortBy',$sortedBy);
$statement->execute();
$results = $statement->fetchAll();
$statement->closeCursor();
return $results; // Assoc Array of Rows
} catch (PDOException $e) {
$errorMessage = $e->getMessage();
include '../view/errorPage.php';
die;
}
}
出于某种原因,我的关联数组总是以我的GameID顺序返回,当我需要它按名称的顺序时?这只是我正在上课的奖金,但是会有所帮助。
答案 0 :(得分:1)
您不能在SQL语句中使用占位符作为列名。
您只能将它们用于值。
您的查询按文字字符串排序 - 所有行都相同。
你正在有效地做
ORDER BY 'Name'
而不是
ORDER BY Name