Einfaches Anführungszeichen in DB speichern |
Tobi W.
Mausakrobat Threadstarter
Beiträge: 182 |
Hallo,
ich speichere so Datensätz in meiner DB:
1:
2:
3:
4: |
mysql_query("INSERT INTO tabelle (abc, def)
VALUES ('$var_abc', '$var_def')");
|
Wenn nun beisp. in der Variabel $var_def ein einfaches Anführungszeichen (') vorkommt, klappt das Query logischer Weise nicht.
Wie kann ich das verhindern, verbessern?
Gruß
Tobi
---
tobi.weinhorst
|
 Profil
Website
Editieren
Zitieren
|
Netbuster
Fachidiot
Beiträge: 128 |
vielleicht mit: mysql_real_escape_string()
Netbuster
|
 Profil
Editieren
Zitieren
|
chip
Foren-Team
Beiträge: 419 |
1:
2:
3:
4: |
mysql_query("INSERT INTO tabelle (abc, def)
VALUES ('".$var_abc."', '".$var_def."')");
|
---
|
 Profil
Website
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795 |
Das ändert doch rein gar nichts?
Escapen ist schon die richtige Methode.
|
 Profil
Editieren
Zitieren
|
chip
Foren-Team
Beiträge: 419 |
languitar schrieb am 17.02.2006 15:38
Das ändert doch rein gar nichts?
Escapen ist schon die richtige Methode. |
Sorry, stimmt. So wäre es richtig:
1:
2:
3:
4: |
mysql_query("INSERT INTO tabelle (abc, def)
VALUES ('".addslashes($var_abc)."', '".addslashes($var_def)."')");
|
---
|
 Profil
Website
Editieren
Zitieren
|
Netbuster
Fachidiot
Beiträge: 128 |
Aber mysql_real_escape_string() ist schon die sicherere Lösung, wenn es um Benutzereingaben geht
Diese Nachricht wurde geändert von: Netbuster |
 Profil
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795 |
addslashes ist sogar eher der Tot für jede DB, da er mehr shlashes macht, als MySQL benötigt, so dass evtl also noch slashes in der DB gespeichert werden, die man dann nie wieder richtig wegbekommt.
|
 Profil
Editieren
Zitieren
|
chip
Foren-Team
Beiträge: 419 |
languitar schrieb am 17.02.2006 16:50
addslashes ist sogar eher der Tot für jede DB, da er mehr shlashes macht, als MySQL benötigt, so dass evtl also noch slashes in der DB gespeichert werden, die man dann nie wieder richtig wegbekommt. |
Hmm, das Problem hatte ich noch nie. Zumal mysql_real_escape_string ja auch einen Haufen Zeichen escaped, oder?
---
Diese Nachricht wurde geändert von: chip |
 Profil
Website
Editieren
Zitieren
|
chip
Foren-Team
Beiträge: 419 |
Nachtrag:
mysql_real_escape_string escaped folgende Zeichen: NULL, \x00, \n, \r, \, ', " und \x1a
addslashes escaped folgende Zeichen: ', ", \, NULL
---
|
 Profil
Website
Editieren
Zitieren
|