sql >> Databasteknik >  >> RDS >> Mysql

Hur man använder bind_result() istället för get_result() i php

Förutsatt att du inte kan använda get_result() och du vill ha en mängd enheter kan du göra:

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

Detta skapar en temporär array och lagrar data från varje rad i den och skjuter den sedan till huvudarrayen. Så vitt jag vet kan du inte använda SELECT * i bind_result() . Istället måste du irriterande nog skriva ut alla fält du vill ha efter SELECT



  1. När och varför ska man använda mysqli_fetch_row, mysqli_fetch_object, mysqli_fetch_assoc, mysqli_fetch_array

  2. Smart (?) Databascache

  3. Att lägga Rails över en befintlig databas

  4. Köra flera frågor i codeigniter som inte kan köras en efter en