在mysql查询中排序的问题

时间:2013-04-21 19:58:01

标签: php mysql pdo

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顺序返回,当我需要它按名称的顺序时?这只是我正在上课的奖金,但是会有所帮助。

1 个答案:

答案 0 :(得分:1)

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

您只能将它们用于值。

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

你正在有效地做

ORDER BY 'Name'

而不是

ORDER BY Name