What are the best practices for handling prepared statements in PHP for database operations?

When handling database operations in PHP, it is best practice to use prepared statements to prevent SQL injection attacks and improve performance. Prepared statements separate SQL logic from data input, allowing for safer execution of queries. To implement prepared statements in PHP, you can use PDO or MySQLi extensions. Example PHP code snippet using PDO for handling prepared statements:

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

// Prepare a SQL statement with placeholders
$stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');

// Bind parameters to placeholders
$id = 1;
$stmt->bindParam(':id', $id, PDO::PARAM_INT);

// Execute the prepared statement
$stmt->execute();

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

// Loop through the results
foreach ($results as $row) {
    echo $row['username'] . '<br>';
}