Tôi đang gặp sự cố khi sử dụng thông số trong phần ORDER BY
trong SQL của tôi. Nó không đưa ra bất kỳ cảnh báo nào, nhưng in ra không có gì.Làm cách nào để đặt các tham số ORDER BY bằng lệnh PDO chuẩn bị?
$order = 'columnName';
$direction = 'ASC';
$stmt = $db->prepare("SELECT field from table WHERE column = :my_param ORDER BY :order :direction");
$stmt->bindParam(':my_param', $is_live, PDO::PARAM_STR);
$stmt->bindParam(':order', $order, PDO::PARAM_STR);
$stmt->bindParam(':direction', $direction, PDO::PARAM_STR);
$stmt->execute();
Các :my_param
công trình, nhưng không :order
hoặc :direction
. Có phải nó không được thoát ra một cách chính xác? Tôi có mắc kẹt chèn nó trực tiếp trong SQL? Giống như vậy:
$order = 'columnName';
$direction = 'ASC';
$stmt = $db->prepare("SELECT * from table WHERE column = :my_param ORDER BY $order $direction");
Có hằng số hoặc tương đương PDO::PARAM_COLUMN_NAME
không?
Cảm ơn!
Xem thêm [Tuyên bố PDO của PHP có thể chấp nhận tên bảng làm tham số không?] (Http://stackoverflow.com/q/182287/157957) – IMSoP