What best practices should be followed when handling user input validation in PHP scripts for database insertion?

When handling user input validation in PHP scripts for database insertion, it is important to sanitize and validate the input to prevent SQL injection attacks and ensure data integrity. One common approach is to use prepared statements with parameterized queries to securely insert user input into the database.

// Establish a database connection
$pdo = new PDO("mysql:host=localhost;dbname=mydatabase", "username", "password");

// Validate and sanitize user input
$username = filter_var($_POST['username'], FILTER_SANITIZE_STRING);
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);

// Prepare a SQL statement with parameterized query
$stmt = $pdo->prepare("INSERT INTO users (username, email) VALUES (:username, :email)");
$stmt->bindParam(':username', $username);
$stmt->bindParam(':email', $email);

// Execute the prepared statement
$stmt->execute();