Erwägen Sie die Verwendung parametrisierter Abfragen mit PDO zum Beispiel.
Schließen Sie alternativ Ihre Variablen in eckige Klammern ein { }.
Bearbeiten:
Ich habe deine Variable $subject
übersehen enthält Einzelzitate. Dies bedeutet, dass Sie ihnen entkommen müssen. (Siehe die unzähligen anderen Antworten und mysql_real_escape_string()
darüber.) Aber wie Sie sehen können, sind einfache Anführungszeichen innerhalb der Variablen genau so, wie Injektionsangriffe funktionieren. Sie zu maskieren hilft, solche Probleme zu vermeiden und ermöglicht Ihrer Abfrage, die erwarteten Daten zu speichern.
Keine Antwort auf Injektionsangriffe ist vollständig, ohne auf Bobby Tables zu verweisen .