אתה יכול לקרוא בדוקומנטציה של השפה על הפונקציות mysql_real_escape_string ו- htmlspecialchars.
בתגובה שלך בילבלת ביניהן קצת, לכל אחת מהן יש תפקיד שונה.
בנוסף לכך -
במחלקות חדשות יותר לעבודה מול מסדי נתונים (לדוג' MySQLi ו- PDO) יש אפשרות לעבוד עם placeholders בשאילתות,
כך ניתן להפריד בין המבנה והתחביר של השאילתה לבין המידע שמתקבל מהמשתמש ולמנוע ממנו לבצע בשאילתה מניפוצליות כאלו ואחרות.
למידע נוסף -
http://www.php.net/manual/en/pdostatement.bindparam.php