Usando la función htmlspecialchars con PDO, prepare y ejecute

Está convirtiendo caracteres especiales en entidades HTML en validación de formularios y consulta de bases de datos usando PHP PDO usandohtmlspecialchars() Funcion realmente necesaria?

Por ejemplo, tengo un sitio web con un sistema de inicio de sesión simple más o menos como:

$username = (string) htmlspecialchars($_POST['user']);
$password = (string) htmlspecialchars($_POST['pass']);

$query = $dbh->prepare("select id where username = ? and password = ?")
$query->execute($username, $password);

Tenga en cuenta que también uso la conversión de tipos además de la función en cuestión. Entonces, ¿es necesario? O puedo usar con seguridad$username = $_POST['user']; ?

Respuestas a la pregunta(2)

Su respuesta a la pregunta