Usa DOP invece di uno di questi approcci. Ti consentirà di utilizzare parametri anziché stringhe.
$sth = $dbh->prepare('SELECT * FROM users WHERE username = :username AND password = :password LIMIT 1');
$sth->bindParam(':username', $username, PDO::PARAM_STR);
$sth->bindParam(':password', $password, PDO::PARAM_STR);
$sth->execute();
A proposito, assicurati di non utilizzare contemporaneamente password in testo normale.