public function fetch_assoc() {
		// To work around PHP bug #47928, we need to call store_result() after executing
		// the query. This shouldn't have a negative impact on performance, it might cause
		// a slight memory increase.
		// See https://bugs.php.net/bug.php?id=47928
		$this->store_result();

		$data = [];
		$params = [];

		foreach ($this->get_columns() as $column) {
			$params[$column] = &$data[$column];
		}

		$result = call_user_func_array([$this, 'bind_result'], $params);

		$data = [];
		while ($this->fetch()) {
			$row = [];
			foreach ($params as $key => $value) {
				$key = 	substr($key, strrpos($key, '.') + 1);
				$row[$key] = $value;
			}
			$data[] = $row;
		}

		return $data;
	}