Php 将ORDER BY添加到SQL查询的语法正确

Php 将ORDER BY添加到SQL查询的语法正确,php,sql,Php,Sql,如何将按字段排序添加到此SQL查询的末尾 $sql=“选择项目标识,项目中的字段WHERE department=”.$catid?我无法获得正确的语法,因为最后的PHP变量 我尝试了$sql=“选择项目标识,来自项目的字段,其中department=”.$catid ORDER BY field但显然这不起作用您可以像这样修复语法错误,使用另一个连接运算符附加ORDER BY子句: $sql = "SELECT item_id,field FROM item WHERE department=

如何将
按字段排序
添加到此SQL查询的末尾
$sql=“选择项目标识,项目中的字段WHERE department=”.$catid?我无法获得正确的语法,因为最后的PHP变量


我尝试了
$sql=“选择项目标识,来自项目的字段,其中department=”.$catid ORDER BY field
但显然这不起作用

您可以像这样修复语法错误,使用另一个连接运算符
附加
ORDER BY
子句:

$sql = "SELECT item_id,field FROM item WHERE department=".$catid." ORDER BY field";
只要
$catid
是一个整数,它就可以工作,但根据
$catid
中的值的来源,它可能会让您打开

最佳实践是使用准备好的查询。对于
MySQLi
,类似以下内容:

$sql = "SELECT item_id,field FROM item WHERE department=? ORDER BY field";
$stmt = $conn->prepare($sql);
$stmt->bind_param('i', $catid);  // change to 's' if $catid is a string
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    // do something with results
}

请展示你所做的尝试。变量不在SQL中,请参数化您的查询。
orderbyfield
是一个明显的语法错误。您正在使用错误报告吗?它与您编写的其他字符串封装相同,
“选择…
,但实际上你根本不应该这样做。查询应该是
SELECT item\u id,字段FROM item WHERE department=?按字段排序
然后绑定
$catid
@user3783243抱歉,我不知道更多的SQL。。。这样做的最佳实践方式是什么?是PHP语法,而不是SQL。如果
$catid
是一个整数,那么SQL是“正确的”。我不知道您在PHP中使用的驱动程序是什么,所以我不能告诉您,只能用您正在使用的驱动程序查找
准备好的语句。