Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách sử dụng bind_result () thay vì get_result () trong php

Giả sử bạn không thể sử dụng get_result() và bạn muốn có một loạt các thiết bị, bạn có thể làm:

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

Điều này tạo ra một mảng tạm thời và lưu trữ dữ liệu từ mỗi hàng trong đó, sau đó đẩy nó vào mảng chính. Theo như tôi được biết, bạn không thể sử dụng SELECT * trong bind_result() . Thay vào đó, bạn sẽ phải gõ ra tất cả các trường bạn muốn sau khi SELECT một cách khó chịu



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trợ giúp với truy vấn MySql - Các hàng nắm giữ mức tối đa thông minh của nhóm của một cột nhất định

  2. Ứng dụng đơn giản nhưng nặng, tiêu tốn nhiều tài nguyên. Làm thế nào để Tối ưu hóa?

  3. MySQL:Không thể sử dụng SIGNAL trong Trigger

  4. Số lượng và nhóm MySQL theo ngày

  5. làm thế nào để điền giá trị cột mysql dựa trên một công thức?