sql >> Databáze >  >> RDS >> Mysql

Parametr v pořadí podle klauzule neřadí -mysql, C#

Důvodem je ORDER BY používá identifikátor databáze (tj. sloupec, alias nebo výraz). Hodnotu předáváte jako parametr.

Jinými slovy, výsledný dotaz by byl ekvivalentní

... ORDER BY 'StartTime' ...

Pokud ověříte uživatelský vstup na základě známé sady hodnot (tj. dostupných sloupců), můžete hodnotu jednoduše interpolovat do řetězce dotazu, např. (velmi hrubé)

$orderBy = $_GET['order_by'];
if (!in_array($orderBy, $orderableColumns)) {
    throw new Exception('Invalid "order by" specified');
}
$query = sprintf('... ORDER BY `%s` ...', $orderBy);


  1. Jak mohu získat offset konkrétního řádku v MySQL?

  2. Problém s přístupem k údajně deaktivované funkci v CODEIGNITER

  3. Z databáze nelze získat správné znaky k zobrazení

  4. Upozornění:formulář na této stránce má více než 1000 polí PHP MySql