【问题标题】:Php mysqli select where & order byphp mysqli 选择位置和顺序
【发布时间】: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 queriesbind_param 将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了严重的SQL injection bug切勿$_POST$_GET 数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。
  • 您是否希望您的 items 表中有列 id?
  • @Anant 为什么他需要按该列排序,因为那里的所有结果都具有相同的值?
  • 那么查询结果中没有名为id的列。为什么你认为应该有?
  • 您的表中没有这样的列。按现有列排序

标签: php mysql select mysqli sql-order-by


【解决方案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 提出的评论。很有用也很必要

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    相关资源
    最近更新 更多