Isso ocorre porque
ORDER BY
usa um identificador de banco de dados (ou seja, uma coluna, alias ou expressão). Você está passando o valor como parâmetro. Em outras palavras, a consulta resultante seria equivalente a
... ORDER BY 'StartTime' ...
Se você validar a entrada do usuário em relação a um conjunto conhecido de valores (ou seja, as colunas disponíveis), você pode simplesmente interpolar o valor na string de consulta, por exemplo (muito grosseiro)
$orderBy = $_GET['order_by'];
if (!in_array($orderBy, $orderableColumns)) {
throw new Exception('Invalid "order by" specified');
}
$query = sprintf('... ORDER BY `%s` ...', $orderBy);