запрос не будет заказывать

у меня есть этот метод

public function getArticles($order){
        $stmt = $this->db->prepare("SELECT * FROM articles ORDER BY :order");
        $stmt->bindParam('order',$order);
        $stmt->execute();
        $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
        return $results;
    }

что я звоню вот так

$articles->getArticles('created DESC');

но когда я пытаюсь сделать «создал ASC», порядок не изменится? я пробовал с двумя $vars и с backtics вокруг столбца, но я не могу заставить его работать, и я не получаю никаких ошибок при работе с ним, просто каждый раз вытаскиваю строки в одном и том же порядке.

Решение найдено на https://phpdelusions.net/pdo.

$orders  = ["name","price","qty"];
$key     = array_search($_GET['sort'], $orders);
$orderby = $orders[$key];
$direction = _GET['direction'] == 'DESC' ? 'DESC' : 'ASC';
$query   = "SELECT * FROM `table` ORDER BY $orderby $direction";

Почему это помечено как mysqli, так и pdo? Это два разных животных.   —  person nicolai olsen    schedule 23.11.2019

Это явно PDO. Я удалил тег mysqli.   —  person nicolai olsen    schedule 23.11.2019

Это было бы и то, и другое. Тот, который @FelippeDuarte использовал, чтобы пометить его, и тот, который я выбрал.   —  person nicolai olsen    schedule 23.11.2019

См. также:  Форма редактирования встроенной таблицы livewire перестает отправлять запросы на сервер, когда она скрыта, и отображается только при нажатии кнопки редактирования
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. nicolai olsen

    Ваш запрос использует переменную связывания для имени столбца. Вы не можете этого сделать.

    Имена столбцов, в том числе в предложениях ORDER BY, должны быть указаны как часть текста запроса.

    спасибо за совет, я погуглил и нашел правильный путь на phpdelusions.net/pdo. person nicolai olsen; 23.11.2019

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: