Důvodem je ORDER BY
používá identifikátor databáze (tj. sloupec, alias nebo výraz). Hodnotu předáváte jako parametr.
Jinými slovy, výsledný dotaz by byl ekvivalentní
... ORDER BY 'StartTime' ...
Pokud ověříte uživatelský vstup na základě známé sady hodnot (tj. dostupných sloupců), můžete hodnotu jednoduše interpolovat do řetězce dotazu, např. (velmi hrubé)
$orderBy = $_GET['order_by'];
if (!in_array($orderBy, $orderableColumns)) {
throw new Exception('Invalid "order by" specified');
}
$query = sprintf('... ORDER BY `%s` ...', $orderBy);