There are two types of SQL injections: plain SQL injection which allows attackers to extract, modify, add, or delete database content by sending invalid SQL queries to exploit errors, and blind SQL injection which selects all rows without errors by abusing query syntax. Solutions include validating user input, escaping special characters, and using custom users with limited privileges. Attackers may also overload servers with requests or upload malicious scripts.