Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Parameter in order by-Klausel bestellt nicht -mysql, C#

Das liegt daran, dass ORDER BY verwendet eine Datenbankkennung (dh eine Spalte, einen Alias ​​oder einen Ausdruck). Sie übergeben den Wert als Parameter.

Mit anderen Worten, die resultierende Abfrage wäre äquivalent zu

... ORDER BY 'StartTime' ...

Wenn Sie die Benutzereingabe anhand eines bekannten Satzes von Werten (dh der verfügbaren Spalten) validieren, können Sie den Wert einfach in die Abfragezeichenfolge interpolieren, z. B. (sehr grob)

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