使用变量对MySQL表进行排序

使用变量对MySQL表进行排序,mysql,variables,Mysql,Variables,我想使用name变量对SQL表进行排序 if (isset($_POST['name'])) { $name = $_POST['name']; } 我已经打印了变量,它是modelName。现在我想用字段modelName对表进行排序 如果我使用此代码,它将不起作用: $statement = $pdo->query('SELECT `ID`, `modelName`, `datecreated` FROM `modeldb` ORDER BY "' . $name . '"'

我想使用
name
变量对SQL表进行排序

if (isset($_POST['name']))
{
    $name = $_POST['name'];
}
我已经打印了变量,它是
modelName
。现在我想用字段
modelName
对表进行排序

如果我使用此代码,它将不起作用:

$statement = $pdo->query('SELECT `ID`, `modelName`, `datecreated` FROM `modeldb` ORDER BY "' . $name . '"');
但如果我使用此代码,它会起作用:

$statement = $pdo->query('SELECT `ID`, `modelName`, `datecreated` FROM `modeldb` ORDER BY modelName');

我是否使用了错误的变量?

欢迎使用编程

您应该像下面这样回显SQL查询,以评估您的输入生成的查询类型

echo'选择ID、modelName、datecreated FROM modeldb ORDER BY“.$name.”

您会发现根本不需要

编程的一条规则是永远不要相信用户的输入。在这里,您正在注入从
$\u POST
所以你应该像这样验证你的输入

$sortableColumns = ['id','modelname','datecreated']
if(in_array(strtolower($name),$sortableColumns)){
  $statement = $pdo->query('SELECT ID, modelName, datecreated FROM modeldb ORDER BY ' . $name )
}else{
  $statement = $pdo->query('SELECT ID, modelName, datecreated FROM modeldb ORDER BY id');
}

请告诉我您想要的任何其他指南。

谢谢!这帮了大忙。
但我仍然不太了解在php中将变量放入字符串中的不同方式:
echo'.$dModel['modelName'].
。$dModel['datecreated']“;
这里的字符串存在于…startViewer('-我不知道如何不同地执行…@user61765最好在HTML之间编写php,例如