How does PDO handle placeholders in SQL queries differently when using prepared statements in PHP?

When using prepared statements with PDO in PHP, placeholders are used to represent the values that will be inserted into the query. This helps prevent SQL injection attacks by separating the SQL query from the user input. To use placeholders with PDO prepared statements, you simply include a question mark (?) in the SQL query where the value should be inserted, and then bind the values to the placeholders using the bindParam or bindValue methods.

// Example of using placeholders with PDO prepared statements
$pdo = new PDO('mysql:host=localhost;dbname=mydatabase', 'username', 'password');

$stmt = $pdo->prepare('SELECT * FROM users WHERE username = ?');
$stmt->bindParam(1, $username);
$username = 'john_doe';
$stmt->execute();

while ($row = $stmt->fetch()) {
    // Process the fetched data
}