Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment utiliser bind_result() au lieu de get_result() en php

En supposant que vous ne pouvez pas utiliser get_result() et que vous voulez un ensemble d'appareils, vous pouvez faire :

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;
}

Cela crée un tableau temporaire et stocke les données de chaque ligne qu'il contient, puis les pousse vers le tableau principal. Autant que je sache, vous ne pouvez pas utiliser SELECT * dans bind_result() . Au lieu de cela, vous devrez ennuyeux taper tous les champs que vous voulez après SELECT