sql >> Database >  >> RDS >> Mysql

Hoe bind_result() te gebruiken in plaats van get_result() in php

Ervan uitgaande dat u get_result() . niet kunt gebruiken en je wilt een scala aan apparaten, je zou kunnen doen:

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

Dit creëert een tijdelijke array en slaat de gegevens van elke rij erin op en duwt deze vervolgens naar de hoofdarray. Voor zover ik weet, kun je SELECT * . niet gebruiken in bind_result() . In plaats daarvan zul je hinderlijk alle velden moeten typen die je wilt na SELECT



  1. Foutmelding:Uitzondering in hoofdthread org.hibernate.HibernateException:Fout bij toegang tot stax-stream

  2. PHP-bestand kan een deel van de code niet invoeren

  3. 2 manieren om uw zoekopdrachtresultaten op te maken in SQLcl (Oracle)

  4. Een beperking in SQL Server (T-SQL) laten vallen