// url: http://localhost/asdf/?sort=credits
if(isset($_GET['sort'])){
$sort = $_GET['sort'];
}
$statement = $db->prepare("SELECT * FROM myTable ORDER BY :sort");
$statement->bindParam(':sort', $sort, PDO::PARAM_STR, 8);
var_dump($statement);
//object(PDOStatement)[2] public 'queryString' => string 'SELECT * FROM table1 ORDER BY :sort' (length=36)
$statement->execute();
En essayant une option de commande à partir des paramètres d'obtenir, quelqu'un peut-il m'aider?
mise à jour comme suggère par @Uchiha Madara, j'ai créé des chaînes de commande predifed
if(isset($_GET['sort'])){
switch ($_GET['sort']){
case 'val1':
$sortName = 'val1';
break;
case 'val2':
$sortName = 'val2';
break;
default:
$sortName = false;
break;
}
}
if($sortname != false){
// then prepare query
$statement = $db->prepare("SELECT * FROM table1 ORDER BY ?");
$statement->execute(array($sortName));
}
mais même résultat, le choix de la commande est ignorée
dernière mise à jour!
$sort = 'val1';
$orderList = array(
'val1',
'val2'
);
// then prepare query
$statement = $db->prepare("SELECT * FROM myTable ORDER BY $sort");
$statement->execute();
merci @Madara Uchiha et @Ray!
la requête s'exécute mais aucune commande n'est appliquée –
Voulez-vous utiliser '$ order'? Ou '$ sort', car c'est la variable que vous créez ...? – andrewsi
mal orthographié, son réellement trier –