Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да използвате bind_result() вместо get_result() в php

Ако приемем, че не можете да използвате get_result() и искате набор от устройства, можете да направите:

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

Това създава временен масив и съхранява данните от всеки ред в него и след това го избутва към основния масив. Доколкото знам, не можете да използвате SELECT * в bind_result() . Вместо това ще трябва досадно да въвеждате всички полета, които искате след SELECT



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. мога ли да се доверя на mysql_insert_id() да върне правилна стойност, многонишкова параноя

  2. PHP PDO заявка за динамично актуализиране към MYSQL

  3. Как мога да използвам JOIN в израза UPDATE?

  4. Как да изпълним две mysql заявки като една в PHP/MYSQL?

  5. Emacs и MySQL на Mac