How can the code snippet be refactored to use PDO for improved database interaction and security?

The issue with the provided code snippet is that it uses the outdated mysql extension, which is deprecated and not secure. To improve database interaction and security, the code should be refactored to use PDO (PHP Data Objects) for database access. PDO provides a more secure and flexible way to interact with databases in PHP.

<?php
// Database connection settings
$host = 'localhost';
$dbname = 'my_database';
$username = 'my_username';
$password = 'my_password';

try {
    // Create a new PDO instance
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    
    // Set PDO to throw exceptions on error
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    
    // Prepare and execute a SQL query
    $stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");
    $stmt->bindParam(':id', $id);
    $stmt->execute();
    
    // Fetch the results
    $result = $stmt->fetch(PDO::FETCH_ASSOC);
    
    // Output the results
    print_r($result);
    
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
?>