Това е така, защото ORDER BY
използва идентификатор на база данни (т.е. колона, псевдоним или израз). Предавате стойността като параметър.
С други думи, получената заявка би била еквивалентна на
... ORDER BY 'StartTime' ...
Ако потвърдите въвеждането на потребителя спрямо известен набор от стойности (т.е. наличните колони), можете просто да интерполирате стойността в низа на заявката, напр. (много грубо)
$orderBy = $_GET['order_by'];
if (!in_array($orderBy, $orderableColumns)) {
throw new Exception('Invalid "order by" specified');
}
$query = sprintf('... ORDER BY `%s` ...', $orderBy);