当前位置: 首页 > 面试题库 >

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

穆乐逸
2023-03-14
问题内容

我创建了一个准备好的选择查询,但该查询似乎没有接听,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.'">';
  }

问题答案:

我认为您不能:

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

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



 类似资料:
  • 问题内容: 我已经使用预备语句尝试了几次,但是它返回SQL异常。这是我的代码: 运行此程序时,出现以下SQL异常: 有什么建议可以使这项工作吗?任何代码都值得赞赏。 问题答案: 您需要使用: 代替 当您将字符串传递给 该 查询时,将按字面意义执行查询,因此将其发送到数据库,然后数据库会产生错误。通过传递查询字符串,您不会执行传递值的“已缓存”准备语句。

  • 我有一个类,其中我使用旧的jdbc方法创建了到h2数据库的连接,该方法编写url并获取连接,我在数据库中创建了一个表,这个表不是java对象,所以我用尽了聪明的方法来为我的方法编写测试 //我还创建了一个表app_user公共void addUser(连接连接,字符串登录,字符串密码,字符串描述)抛出SQLException{ 而我的测试方法看起来像这样,有没有办法让它不那么整洁,更简单,我试图用

  • 问题内容: 假设我们有一个查询: 以及要获取的ID数组: 预处理语句它劝准备一个语句,并调用它多次: 但是现在我必须手动对结果进行排序。我有其他不错的选择吗? 问题答案: 您可以这样进行: 使用此方法,您将为每个id调用bind_param,并且已由mysql完成排序。

  • 问题内容: 这个问题已经在这里有了答案 : 从PDO准备好的语句中获取原始SQL查询字符串 (16个答案) 5个月前关闭。 有没有一种方法可以检索用于生成PDO Prepared语句对象的查询? 问题答案: 尝试$ statement-> queryString 。