Не имеет большого смысла извлекать данные из базы данных для каждого запроса, если вы все равно используете сеансы.В каком случае, почему session_start () вызывается внутри метода setUser ()?
И мы не можем прокомментировать структуру класса, когда вы предоставили только один метод.
Кроме того, поскольку представление данных, выходящих из PHP, должно соответствовать субстрату, куда эти данные направляются (чтобы предотвратить внедрение SQL, внедрение заголовка электронной почты, CSS ...), тогда рекомендуется отложить изменения представления данных.до момента, когда он покидает PHP.например,
$sql = "SELECT
....
WHERE usr.id = " . mysql_real_escape_string($id);
(или использовать связанные параметры)
Однако, поскольку пользователи обычно идентифицируют себя по имени пользователя, а не по их идентификатору пользователя, это скорее означает, что $ id был получен не из предоставленного пользователемданные - в каком случае, где?И почему вы используете его в качестве идентификатора, если у вас уже есть идентификатор для сеанса (где эти данные должны храниться).
Или вы хотите использовать этот класс для обработки данных, относящихся кпользователям, отличным от пользователя текущего сеанса - в этом случае нет возможности , что там должен быть session_start ().
Извините, но это не очень хорошо продуманокод и не очень хорошо поставленный вопрос.
Кстати, установка нулевого соединения не закрывает соединение с базой данных.