gpt4 book ai didi

mysql - order by 子句中的参数不排序-mysql,C#

转载 作者:行者123 更新时间:2023-11-29 04:29:31 25 4
gpt4 key购买 nike

在我的 mvc 应用程序中,我使用以下查询来选择一些数据。我没有使用存储过程

 select recordID,ChannelID,UserID ,StartTime ,Duration,SeqNum from result  WHERE SeqNum = ?pSeqNum
ORDER BY StartTime DESC limit ?pStartIndex, ?pRecordsPerPage;

我会将值传递给 LIMT。它工作正常。

现在我为用户提供了一个按条件选择顺序的选项(用户从 recordID、ChannelID、UserID、StartTime、Duration 中选择一个)。所以 o 尝试了以下代码。

 select recordID,ChannelID,UserID ,StartTime ,Duration,SeqNum from result  WHERE SeqNum = ?pSeqNum
ORDER BY ?pOrderBy DESC limit ?pStartIndex, ?pRecordsPerPage;

我传递 pOrderBy 的值就像传递 pStartIndex 和 pRecordsPerPage 一样。但它不是工作订单。它只选择没有顺序的数据

最佳答案

这是因为 ORDER BY 使用数据库标识符(即列、别名或表达式)。您将值作为参数传递。

换句话说,结果查询等同于

... ORDER BY 'StartTime' ...

如果您根据一组已知值(即可用列)验证用户输入,您可以简单地将值插入到查询字符串中,例如(非常粗略)

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

关于mysql - order by 子句中的参数不排序-mysql,C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5307676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com