How can SQL injection vulnerabilities be mitigated in PHP code when handling user input?
SQL injection vulnerabilities can be mitigated in PHP code by using prepared statements and parameterized queries when interacting with a database. This approach ensures that user input is treated as data rather than executable SQL code, preventing malicious queries from being injected into the database.
// Establish a database connection
$pdo = new PDO('mysql:host=localhost;dbname=mydatabase', 'username', 'password');
// Prepare a SQL statement with placeholders for user input
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');
// Bind the user input to the placeholders in the statement
$stmt->bindParam(':username', $_POST['username']);
// Execute the prepared statement
$stmt->execute();
// Fetch the results
$results = $stmt->fetchAll();