Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Einfaches Anführungszeichen in DB speichern Antworten
Einfaches Anführungszeichen in DB speichern

Tobi W.
Mausakrobat


Beiträge: 181


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

---
Beamer Ersatzlampen | tobi.weinhorst | Hotel Werther

  Profil   Website   Editieren   Zitieren

Netbuster
Fachidiot


Beiträge: 128


vielleicht mit: mysql_real_escape_string()

Netbuster

  Profil   Editieren   Zitieren

chip
Quasselstrippe


Beiträge: 391


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.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

chip
Quasselstrippe


Beiträge: 391


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.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

chip
Quasselstrippe


Beiträge: 391


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
Quasselstrippe


Beiträge: 391


Nachtrag:

mysql_real_escape_string escaped folgende Zeichen: NULL, \x00, \n, \r, \, ', " und \x1a
addslashes escaped folgende Zeichen: ', ", \, NULL

---

  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben