What are some best practices for handling user sessions and querying user data in PHP?

Issue: When handling user sessions and querying user data in PHP, it is important to properly manage sessions to ensure security and efficiency. This includes securely storing session data, validating user input to prevent SQL injection attacks, and using prepared statements for querying user data to prevent SQL injection vulnerabilities.

// Start the session
session_start();

// Set session variables
$_SESSION['user_id'] = $user_id;

// Connect to the database
$connection = new mysqli($host, $username, $password, $database);

// Prepare a SQL statement using a prepared statement to query user data
$stmt = $connection->prepare("SELECT * FROM users WHERE user_id = ?");
$stmt->bind_param("i", $user_id);
$stmt->execute();
$result = $stmt->get_result();

// Fetch user data
$user_data = $result->fetch_assoc();

// Close the statement and connection
$stmt->close();
$connection->close();