Questo perché ORDER BY
utilizza un identificatore di database (cioè una colonna, un alias o un'espressione). Stai passando il valore come parametro.
In altre parole, la query risultante sarebbe equivalente a
... ORDER BY 'StartTime' ...
Se convalidi l'input dell'utente rispetto a un insieme noto di valori (ad es. le colonne disponibili), puoi semplicemente interpolare il valore nella stringa di query, ad esempio (molto approssimativa)
$orderBy = $_GET['order_by'];
if (!in_array($orderBy, $orderableColumns)) {
throw new Exception('Invalid "order by" specified');
}
$query = sprintf('... ORDER BY `%s` ...', $orderBy);