What are the recommended methods for sanitizing and validating user input in PHP to prevent security risks such as SQL injection?

To prevent security risks such as SQL injection in PHP, it is recommended to sanitize user input by using functions like `filter_var()` or `mysqli_real_escape_string()`. Additionally, validating user input by checking for expected data types, lengths, and formats can help ensure that only safe data is processed by the application.

// Sanitize user input using filter_var()
$username = filter_var($_POST['username'], FILTER_SANITIZE_STRING);
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);

// Validate user input by checking for expected data types
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    // Handle invalid email input
}

// Prevent SQL injection by escaping special characters
$mysqli = new mysqli('localhost', 'username', 'password', 'database');
$username = $mysqli->real_escape_string($_POST['username']);
$email = $mysqli->real_escape_string($_POST['email']);