我有下面的代碼工作:ORDER BY子句不會變
$Ordering=$_POST["fname"];
$CustName=$_POST["CustName"];
echo "Ordering----HHH".$Ordering."HHH".'</br>';
$query="SELECT * FROM Chargebacks WHERE CustName= '$CustName' ORDER BY '$Ordering'";
兩個fname
和CustName
來自另一個頁面。 fname
做工精細,CustName
正確呼應爲$Ordering
(以下簡稱「HHH」是存在的,所以我可以肯定有沒有偷偷摸摸的空間....)
的ORDER BY子句簡直什麼也不做......如果輸入無效的列標題,sript只是按預期崩潰,但如果使用有效的結果,結果的順序就是它們在源表中顯示的順序。
如果我複製並粘貼回顯的$Ordering
的值並將其放入代碼中(不帶單引號),則子句將正常工作。
在研究中,我發現單引號和雙引號以及普通,正方形和括號括號中的任意數量的變體,但它們都沒有工作,我相信這樣的事情不應該是必需的。
這是如此簡單的事......不是嗎?
您使用的是哪種'mysql' API?有幾個:mysql,mysqli和PDO_mysql。另外,ORDER BY子句中的謂詞需要是表中列的名稱。目前還不清楚這是否屬於這種情況。 –
在開始生產之前,請先閱讀關於SQL注入的所有內容。 – Jordan
將您的'order by'值加上引號會將它變成STRING,而不是字段名稱。 –