小编典典

选择查询的顺序在准备好的语句中不起作用

sql

我创建了一个准备好的选择查询,但该查询似乎没有接听,DESC或者bind_param结构错误。我正在尝试id显示user_id图像的最后一个。显示用户的图像,但这是他们拥有的第一个id图像。我试着做ASC,那是同一回事。

我这样做对吗?

$sql = "
  SELECT *
  FROM profile_img
  WHERE user_id = ?
  ORDER BY ? DESC LIMIT 1
  ";
  if ($stmt = $con->prepare($sql)) {
        $stmt->bind_param("ss", $user_id, `id`);
        $stmt->execute();
        if (!$stmt->errno) {
            // Handle error here
        }
        $stmt->bind_result($id, $user_id, $profilePic);

        $pics = array();
        while ($stmt->fetch()) {
            $pics[] = $profilePic;
        }

        echo '<img id="home-profile-pic" src=" '.$profilePic.'">';
  }

阅读 164

收藏
2021-04-14

共1个答案

小编典典

我认为您不能:

  • 在order by子句中使用占位符
  • 绑定列名:您只能绑定值或变量,并将其值注入到prepared语句中。

You can use number instead of field name in the 'order by' clause

2021-04-14