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;
}
문제 $users
어레이의가 가득 얻을 이렇게하면, &$result
가 참조 &
을 가지고 있다는 것입니다. while 루프가 실행될 때마다 이전에 삽입 된 레코드는 &$result
변수의 마지막 값으로 업데이트됩니다. 따라서 전체 결과 $users
에는 각 레코드에 대해 동일한 모든 데이터 목록이 있습니다.
&$result
변수에서 참조를 제거하려면 어떻게해야합니까? 더 간단한 해결책이 있어야한다,
while($statement->fetch()) {
$users[$result['id']] = array($result['id'], $result['email'], ..etc);
}
을하지만 너무 많은 것 같아요입니다 :
그것은 새로운 배열에 자신의 각 열을 넣어 작동합니다.
내가 찾던 있다고! 감사! –
답변에 문제가 하나 있습니다. serialiSe가 아닌 serialiSe –
@Stijntjhe 그것을 보아 주셔서 감사합니다 : D – Udan