Điều này là do ORDER BY
sử dụng một định danh cơ sở dữ liệu (tức là một cột, bí danh hoặc biểu thức). Bạn đang chuyển giá trị dưới dạng tham số.
Nói cách khác, truy vấn kết quả sẽ tương đương với
... ORDER BY 'StartTime' ...
Nếu bạn xác thực đầu vào của người dùng so với một tập giá trị đã biết (tức là các cột có sẵn), bạn có thể chỉ cần nội suy giá trị vào chuỗi truy vấn, ví dụ:(rất thô)
$orderBy = $_GET['order_by'];
if (!in_array($orderBy, $orderableColumns)) {
throw new Exception('Invalid "order by" specified');
}
$query = sprintf('... ORDER BY `%s` ...', $orderBy);