sql >> Database teknologi >  >> RDS >> Mysql

Sådan bruger du bind_result() i stedet for get_result() i php

Forudsat at du ikke kan bruge get_result() og du vil have en række enheder, kan du gøre:

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

Dette opretter et midlertidigt array og gemmer dataene fra hver række i det og skubber det derefter til hovedarrayet. Så vidt jeg ved, kan du ikke bruge SELECT * i bind_result() . I stedet bliver du irriterende nødt til at indtaste alle de felter, du ønsker efter SELECT



  1. Søgning i en kolonne, der indeholder CSV-data i en MySQL-tabel, for at se, om der er inputværdier

  2. Pandas opdatering sql

  3. Sender et array til mysql

  4. Sådan forbinder du to borde i MySQL