Използвайте PDO вместо всеки от тези подходи. Това ще ви позволи да използвате параметри вместо низове.
$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();
Между другото, уверете се, че не използвате пароли в обикновен текст едновременно.