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

如何在PHP中使用bind_result()代替get_result()

习胤运
2023-03-14
问题内容

我正在为uni开发一个项目,并且一直在基于的表中使用testing serverto上的以下代码:get all devices``user_id

public function getAllDevices($user_id) {
    $stmt = $this->conn->prepare("SELECT * FROM devices WHERE  primary_owner_id = ?");
    $stmt->bind_param("i", $user_id);
    $stmt->execute();
    $devices = $stmt->get_result();
    $stmt->close();
    return $devices;
}

这在我的测试服务器上运行良好,但是在迁移到大学项目服务器时返回此错误:

Call to undefined method mysqli_stmt::get_result()

一些谷歌搜索建议使用bind_result()代替,get_result()但我不知道如何all fields在表中做到这一点。大多数示例仅显示返回one field

任何帮助将非常感激


问题答案:

假设您无法使用get_result()并且想要一系列设备,则可以执行以下操作:

public function getAllDevices($user_id) {
    $stmt = $this->conn->prepare("SELECT device_id, device_name, device_info FROM devices WHERE  primary_owner_id = ?");
    $stmt->bind_param("i", $user_id);
    $stmt->execute();
    $stmt->bind_result($id, $name, $info);
    $devices = array();

    while($stmt->fetch()) {
        $tmp = array();
        $tmp["id"] = $id;
        $tmp["name"] = $name;
        $tmp["info"] = $info;
        array_push($devices, $tmp);
    }
    $stmt->close();
    return $devices;
}

这将创建一个临时数组并将其每一行中的数据存储在其中,然后将其推入主数组。据我所知,您不能SELECT *在中使用bind_result()。取而代之的是,您将不得不烦恼地键入所有想要的字段。SELECT



 类似资料:
  • 问题内容: 我想看一个示例,该示例如何使用vs. 进行调用,以及一个使用另一个调用的目的。 也是使用每种方法的利弊。 使用两者之一的局限性是什么? 问题答案: 对我来说,决定性的因素是我是否使用调用查询列。 为此,使用会更好: 为此,使用会更好: 示例1 使用 实施例2对于使用 正如你所看到的,你不能使用带。但是,两者均可使用,但更简单,并且消除了一些麻烦。 bind_result() 优点: 更

  • 问题内容: 我一直在看Redis。看起来很有趣。但是从实际的角度来看,在哪种情况下最好使用Redis而不是MySQL? 问题答案: 忽略整个NoSQL与SQL的争论,我认为最好的方法是将它们结合起来。换句话说,对于系统的某些部分(复杂的查询,事务)使用MySQL,而对于其他部分(性能,计数器等)则使用Redis。 以我的经验,与可伸缩性(很多用户…)相关的性能问题最终迫使您添加某种缓存来减轻MyS

  • 问题内容: 我使用函数来获取和显示特定页面上的外部链接。 在我的本地文件中,一切正常,但是我的服务器不支持该功能,因此我尝试将cURL与以下代码配合使用: 但是它返回一个空白页。怎么了? 问题答案: 尝试这个:

  • 如果你不使用 CodeIgniter 的 模板引擎, 那么你就只能在视图文件中使用纯 PHP 语法了。为了精简视图文件, 使其更可读,建议你在写控制结构或 echo 语句时使用 PHP 的替代语法。 如果你还不熟悉这个语法,下面将介绍如何通过这个语法来消灭你代码 中的大括号和 echo 语句。 自动短标记支持 注解 如果你发现本页所介绍的语法在你的服务器上行不通,那么有可能是 你的 PHP.ini

  • 问题内容: 在“学习Python的艰难方法”第21页上,我看到以下代码示例: 为什么用这里代替?您什么时候使用,什么时候使用? 问题答案: 该物体使用符转换,并且将其转换使用。 对于某些对象(例如整数),它们产生相同的结果,但是特殊之处在于(对于可能的类型)它通常返回有效的Python语法的结果,该结果可用于明确地重新创建其表示的对象。 这是一个使用日期的示例: 对于该类型不产生Python语法包

  • 问题内容: 我正在为一款游戏开发一个所谓的AAC(自动帐户创建者),它基本上是一个具有创建帐户,玩家和其他更多功能的站点。该服务器仅支持SHA1和Plain- 这是完全不安全的。我无法深入研究源代码并进行更改。如果有可以使用SHA1的信息,我将不胜感激。我刚刚阅读了BCrypt,这很棒,但是我不能真正更改源代码以适合BCrypt。我设法将SHA1这样注册: 但是我根本无法登录。我做错了吗?好像La