Ini karena ORDER BY
menggunakan pengenal database (yaitu, kolom, alias atau ekspresi). Anda meneruskan nilai sebagai parameter.
Dengan kata lain, kueri yang dihasilkan akan setara dengan
... ORDER BY 'StartTime' ...
Jika Anda memvalidasi input pengguna terhadap kumpulan nilai yang diketahui (yaitu, kolom yang tersedia), Anda cukup menginterpolasi nilai ke dalam string kueri, misalnya (sangat kasar)
$orderBy = $_GET['order_by'];
if (!in_array($orderBy, $orderableColumns)) {
throw new Exception('Invalid "order by" specified');
}
$query = sprintf('... ORDER BY `%s` ...', $orderBy);