What are the best practices for handling user input validation in PHP when dealing with database queries?

When handling user input validation in PHP for database queries, it is crucial to sanitize and validate the input to prevent SQL injection attacks. One of the best practices is to use prepared statements with parameterized queries to securely interact with the database. Additionally, using PHP functions like filter_var() or htmlentities() can help sanitize user input before executing queries.

// Example of handling user input validation in PHP for database queries

// Assuming $db is your database connection object

// Sanitize and validate user input
$userInput = filter_var($_POST['user_input'], FILTER_SANITIZE_STRING);

// Prepare a SQL statement using a parameterized query
$stmt = $db->prepare("SELECT * FROM users WHERE username = :username");
$stmt->bindParam(':username', $userInput);
$stmt->execute();

// Fetch results
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

// Process the results as needed
foreach ($results as $row) {
    echo $row['username'] . "<br>";
}