What are the advantages of using PDO over mysql functions in PHP for database interactions and how can it improve code security and performance?

When interacting with databases in PHP, using PDO (PHP Data Objects) over traditional mysql functions provides several advantages. PDO offers a more secure way to access databases by supporting prepared statements, which helps prevent SQL injection attacks. Additionally, PDO is more versatile as it supports multiple database types, allowing for easier migration between different database systems. In terms of performance, PDO can be faster than mysql functions due to its ability to reuse prepared statements.

// Using PDO for database interactions
try {
    $pdo = new PDO('mysql:host=localhost;dbname=database', 'username', 'password');
    $stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');
    $stmt->bindParam(':id', $id);
    $stmt->execute();
    $result = $stmt->fetch();
    // process $result
} catch (PDOException $e) {
    echo 'Error: ' . $e->getMessage();
}