Ben bir PDO deyimi içinde ORDER BY bir parametre bağlama ile sorun yaşıyorum. "OrderBy" onlar için varsayalım konum olarak sonuçları sıralı değil gibi sorgusuna geçilecek gibi görünüyor değil. Ben oldukça bir parametre daha sorguda gibi price
gibi bir sütun adı kullandığınızda, sonuç o sütuna göre sıralanır. Kodu:
class Products {
const ORDER_BY_NAME='name';
const ORDER_BY_PRICE_PER_UNIT='price_per_unit';
const ORDER_BY_PRICE='price';
const ORDER_BY_MINIMUM_QUANTITY='minimum_quantity';
// function returns array of all products
public function getAllProducts($orderBy) {
$db=Registry::getVariable('db');
$pdoStatement=$db->prepare("SELECT name, minimum_quantity, price_per_unit, price, id FROM products ORDER BY :orderBy;");
$pdoStatement->bindParam(':orderBy', $orderBy, PDO::PARAM_STR);
$pdoStatement->execute();
return $pdoStatement->fetchAll(PDO::FETCH_ASSOC);
}
}
Daha sonra ben şöyle çağırır:
$products=new Products();
echo $products->getAllProducts(Products::ORDER_BY_PRICE);
Neden gelmez: orderBy parametre sorgusunda kullanılacak gibi görünüyor?