To reduce an attacker's possibilities, is it worth to have only alphanumeric values inside the table ? For example on username and password inputs on registration form applay the following:
preg_replace("/[^A-Za-z0-9 ]/", '', $input);
And of course, perform the same each time before login ?