¿Son las declaraciones preparadas PDO suficientes para evitar la inyección de SQL?

Digamos que tengo un código como este:

$dbh = new PDO("blahblah");

$stmt = $dbh->prepare('SELECT * FROM users where username = :username');
$stmt->execute( array(':username' => $_REQUEST['username']) );

La documentación de la DOP dice:

Los parámetros para las declaraciones preparadas no necesitan ser citados; El conductor lo maneja por ti.

¿Es realmente todo lo que necesito hacer para evitar las inyecciones de SQL? ¿Es realmente tan fácil?

Puedes asumir MySQL si hace una diferencia. Además, solo tengo curiosidad por el uso de declaraciones preparadas contra la inyección de SQL. En este contexto, no me importa XSS u otras posibles vulnerabilidades.

Respuestas a la pregunta(7)

Su respuesta a la pregunta