What are the advantages of using PDO and prepared statements in PHP for database interactions?

Issue: When interacting with a database in PHP, it is important to use PDO (PHP Data Objects) and prepared statements to prevent SQL injection attacks and ensure better security by separating SQL logic from data input.

// Using PDO and prepared statements for secure database interactions
try {
    $pdo = new PDO('mysql:host=localhost;dbname=mydatabase', 'username', 'password');
    $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
    $stmt->bindParam(':username', $username);
    $stmt->execute();
    $result = $stmt->fetchAll();
    
    foreach($result as $row){
        echo $row['username'] . "<br>";
    }

} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}