sql >> Databasteknik >  >> RDS >> Mysql

Parameter i ordningsföljd efter sats ordnar inte -mysql, C#

Detta beror på att ORDER BY använder en databasidentifierare (dvs. en kolumn, alias eller uttryck). Du skickar värdet som en parameter.

Med andra ord skulle den resulterande frågan vara likvärdig med

... ORDER BY 'StartTime' ...

Om du validerar användarinmatningen mot en känd uppsättning värden (dvs tillgängliga kolumner), kan du helt enkelt interpolera värdet i frågesträngen, t.ex. (mycket grov)

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


  1. CodeIgniter:SQL granskning av alla $this->db->query() metodanrop?

  2. Bästa sättet att köra Oracle-frågor regelbundet

  3. Hur man delar upp ett kommaseparerat värde till kolumner

  4. Hur man kontrollerar vilka lås som hålls på ett bord