-2
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 顺序返回,当我需要它按照名称的顺序时?这只是我正在上课的奖励,但我们将不胜感激。

4

1 回答 1

1

您不能在 SQL 语句中为列名使用占位符。

您只能将它们用于值。

您的查询按文字字符串排序 - 所有行都相同。

你正在有效地做

ORDER BY 'Name'

代替

ORDER BY Name
于 2013-04-21T20:04:02.113 回答