2
我在使用MySQLi時遇到問題,我想創建一個函數以將數據庫中的所有用戶作爲數組返回。MySQLi:從表中獲取所有,結果已通過引用
下面的代碼:
public function getAll() {
$statement = $this->database->prepare('SELECT `id`, `email`, `firstname`, `lastname`, `last_time`, `type`, `activated`, `enabled` FROM `users` ORDER BY `id`');
$statement->execute();
$statement->bind_result($result['id'], $result['email'], $result['firstname'], $result['lastname'], $result['last_time'], $result['type'], $result['activated'], $result['enabled']);
$users = array();
while($statement->fetch()) {
$users[$result['id']] = $result;
}
return $users;
}
的問題是&$result
具有參考&
,所以當$users
陣列得到的填補。每次執行while循環時,先前插入的記錄都將更新爲&$result
變量中的最後一個值。 因此,整體結果$users
將具有每個記錄的所有相同數據的列表。
那麼如何從&$result
變量中刪除參考?
它通過把每列由它自己在新的數組:
while($statement->fetch()) {
$users[$result['id']] = array($result['id'], $result['email'], ..etc);
}
但是,太多了,我想,必須有一個更簡單的解決方案。
這就是我一直在尋找!謝謝! –
你的答案有一個問題,serialiZe不serialiSe –
@Stijntjhe謝謝你看到它:D – Udan