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