Kurz und einfach ausgedrückt: mysql_real_escape_string wendest du auf alles User-Input an, den du in die Datenbank schiebst. Denn allem Input, der vom User kommt, darf man grundsätzlich nicht trauen.
mysql_real_escape_string tut nichts anderes, als unsichere Zeichenfolgen wie ', \x00 usw., die für SQL-Injections angewendet werden, zu maskieren und ist das Mindestmaß (!) an Sicherheit, das beim Speichern von Userdaten in PHP Verwendung finden sollte.

http://php.net/manual/de/function.my...ape-string.php