sql >> Databáze >  >> RDS >> Mysql

Jak používat bind_result() místo get_result() v php

Za předpokladu, že nemůžete použít get_result() a chcete řadu zařízení, můžete udělat:

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

Tím vytvoříte dočasné pole a uložíte do něj data z každého řádku a poté je přesunete do hlavního pole. Pokud je mi známo, nemůžete použít SELECT * v bind_result() . Místo toho budete muset po SELECT nepříjemně vypisovat všechna požadovaná pole



  1. Jak formátovat klauzuli SQL IN pomocí Pythonu

  2. Databáze se neaktualizuje automaticky pomocí MySQL a Pythonu

  3. ukládání objektu python v tabulce postgres s okurkou

  4. Převeďte složitý SQL dotaz na SQLAlchemy