Вы смешали свои переменные.Я предполагаю, что ваш пароль хранится в виде хэша, но вы сравниваете его с не хэшированным значением.
вместо этого попробуйте
$password = mysqli_real_escape_string($connection, $_POST['password']);
$hashedPassword = hash('SHA256', $password);
$query = "SELECT * FROM users WHERE email = '$email' AND password = '$hashedPassword'";
Даже если мне интересно, почему вы пытаетесь поместить полный результат в$ _SESSION.Я бы не стал этого делать, если вам нужно иметь некоторые значения в вашей сессии (например, userId, email и username или similiar), я бы просто сохранял их вместо всех столбцов в строке.Кроме того, выполнение запроса без указания столбцов, которые вы хотите получить, не является лучшей практикой, см. Эту тему для объяснения.
Возможно, вы захотите проверить PHP-ссылку для password_hash и password_verify для улучшения вашей концепции.