php mysqli 选择位置和顺序
Posted
技术标签:
【中文标题】php mysqli 选择位置和顺序【英文标题】:Php mysqli select where & order by 【发布时间】:2016-10-26 05:49:00 【问题描述】:mysqli_query
的 "order by"
标记有问题。
实际上它工作正常,但最后的 order by 只返回这个错误:
出现错误:“订单子句”中的未知列“id”
$query2 = "SELECT * FROM items WHERE itemownerid = '".$creatorid."' AND game = 1 AND `game_id` = $gameid order by id desc";
【问题讨论】:
警告:使用mysqli
时,您应该使用parameterized queries 和bind_param
将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了严重的SQL injection bug。 切勿将 $_POST
或 $_GET
数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。
您是否希望您的 items 表中有列 id?
@Anant 为什么他需要按该列排序,因为那里的所有结果都具有相同的值?
那么查询结果中没有名为id
的列。为什么你认为应该有?
您的表中没有这样的列。按现有列排序
【参考方案1】:
实际上,错误本身表明您的items
表中不存在id
列,这就是order by id
失败的原因。
因此将其更改为有效的列名。一个例子如下:-
$query2 = "SELECT * FROM items WHERE itemownerid = '".$creatorid."' AND game = 1 AND `game_id` = $gameid ORDER BY <write any existing column name of your items table> DESC";
注意:- 请注意@tadman 提出的评论。很有用也很必要
【讨论】:
以上是关于php mysqli 选择位置和顺序的主要内容,如果未能解决你的问题,请参考以下文章