What are some best practices for handling user input in PHP to prevent SQL injection?

To prevent SQL injection in PHP, it is important to use prepared statements with parameterized queries when interacting with a database. This helps to separate the SQL query logic from the user input, making it impossible for malicious input to alter the query structure.

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

// Prepare a SQL query using a parameterized statement
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');

// Bind the user input to the query parameters
$stmt->bindParam(':username', $_POST['username']);

// Execute the query
$stmt->execute();

// Fetch the results
$results = $stmt->fetchAll();