Esto se debe a que ORDER BY
utiliza un identificador de base de datos (es decir, una columna, alias o expresión). Estás pasando el valor como un parámetro.
En otras palabras, la consulta resultante sería equivalente a
... ORDER BY 'StartTime' ...
Si valida la entrada del usuario contra un conjunto conocido de valores (es decir, las columnas disponibles), simplemente puede interpolar el valor en la cadena de consulta, por ejemplo (muy aproximado)
$orderBy = $_GET['order_by'];
if (!in_array($orderBy, $orderableColumns)) {
throw new Exception('Invalid "order by" specified');
}
$query = sprintf('... ORDER BY `%s` ...', $orderBy);