我有一个查询字符串的变量(不要担心,我安全地做到了这一点)。请告诉我如何将变量添加到我的sql查询中。我的变量:变量MySql查询排序依据和排序
$order = "ASC";
if(isset($_POST['sort'])){
if($_POST['sort']=="date"){
$sort = "date";
}
else if($_POST['sort']=="pricelow"){
$sort = "Price";
}
else if($_POST['sort']=="pricehigh"){
$sort = "Price";
$order = "DESC";
}
}
而且我下面的查询:
mysql_query("SELECT * FROM event ORDER BY '$sort' '$order'");
删除'$ sort'和'$ order'的单引号 – 2013-08-31 20:49:03
我很高兴你问。请[不要在新代码中使用mysql_ *函数](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)。 他们不再被维护,并[正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。 改为了解** Prepared Statements **,并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli)。请参阅[本文](http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php),以便快速了解如何做到这一点以及为什么这么重要。 –
至于Akam所说的字段名称不会被引用,也不会执行ASC DESC关键字。只有时间字段名称需要引号,并且只有当它们的名称匹配mysql关键字时 –