En nog ff de theorie erachter zodat Nanno weet wat er precies fout gaat:
Als je een tekst verstuurd met een ' of " erin, dan kan het uit je query breken.
Stel je query is: "UPDATE table SET kolom = ' " . $waarde . " ' "
En waarde bevat: dit is een 'test'
Dan wordt het zo als query gezien:
"UPDATE table SET kolom = ' dit is een 'test' ' "
Dan zie je wel dat die aanhalingstekens worden gezien als deel van de query.
Dit gedeelte ziet ie wel als waarde: ' dit is een '
Omdat die omsloten is door 2 aanhalingstekens, maar daarna ziet ie opeens staan:
test' '
En dat hoort niet, daar hoort ie een , (comma) of andere SQL commando's te krijgen als WHERE, ORDER BY, LIMIT etc.
En die mysql_real_escape_string zorgt er dus voor dat mysql de aanhalingstekens binnen mysql_real_escape_string identificeert als een deel van de string zelf.