What are the best practices for validating and sanitizing user input in PHP before using it in database queries?

When dealing with user input in PHP that will be used in database queries, it is crucial to validate and sanitize the input to prevent SQL injection attacks. One common approach is to use prepared statements with parameterized queries to separate the SQL logic from the user input. Additionally, you can use functions like `filter_var()` to validate and sanitize user input before using it in queries.

// Validate and sanitize user input before using it in a database query
$userInput = $_POST['user_input'];

// Validate user input
if (!filter_var($userInput, FILTER_VALIDATE_INT)) {
    // Handle invalid input
}

// Sanitize user input
$cleanInput = mysqli_real_escape_string($connection, $userInput);

// Use prepared statement to insert user input into database
$stmt = $connection->prepare("INSERT INTO table_name (column_name) VALUES (?)");
$stmt->bind_param("s", $cleanInput);
$stmt->execute();