String in MySQL Datenbank speichern
Hansi
- php
Hallo,
ich habe ein String $daten wo folgendes drin steht:
<?php include('script/ansprechpartner/index.php'); ?>
Wenn ich $daten in die MySQL Datenbank schreibe kommt es zum Syntax Fehler. Ich weiß auch welcher Fehler vorliegt er mag das ' Zeichen nicht nur über phpmyadmin läßt es sich ohne Probleme in die Datenbank schreiben.
Wie stelle ich es nun an den String in meine Datenbank zu schreiben ohne das Fehler auftreten?
Und wenn ich dann später den String wieder auslese das er mir auch so wie er da oben steht ausgeben wird?
<?php include('script/ansprechpartner/index.php'); ?>
Danke für eure Hilfe!
Gruß Tom
Halihallo Hansi
Wenn ich $daten in die MySQL Datenbank schreibe kommt es zum Syntax Fehler. Ich weiß auch welcher Fehler vorliegt er mag das ' Zeichen nicht nur über phpmyadmin läßt es sich ohne Probleme in die Datenbank schreiben.
http://www.php.net/mysql_escape_string
Viele Grüsse
Philipp
Halihallo Hansi
Wenn ich $daten in die MySQL Datenbank schreibe kommt es zum Syntax Fehler. Ich weiß auch welcher Fehler vorliegt er mag das ' Zeichen nicht nur über phpmyadmin läßt es sich ohne Probleme in die Datenbank schreiben.
Hallo Philipp
heißt das also man darf kein String in dieser Form in eine Datenbank abspeichern? Auch nicht über PHPmyAdmin
Also bisher habe ich es mit PhPmYAdmin abespeichert und mit evel den String aus der Fatenbank ausgeführt hat alles ohne Fehler funktioniert.
Heißt das also ich muß es für die Zukunft anders machen und den String für das reinschreiben in die Datenbank maskieren?
Und wenn ich den String wieder auslese umparsen?
Es wäre mir hilfreich wie ihr das in der Praxis löst, damit ich in Zukunft alte Fehler nicht wiederhole.
Nur wäre das maskieren und zurück parsen im Script etwas mehr Aufwand was nicht wirklich schön ist :-(
Gruß Hansi
hi,
heißt das also man darf kein String in dieser Form in eine Datenbank abspeichern?
es _geht_ einfach nicht, weil die anführungszeichen _im_ string mit der mysql-syntax kollidieren.
Auch nicht über PHPmyAdmin
Also bisher habe ich es mit PhPmYAdmin abespeichert und mit evel den String aus der Fatenbank ausgeführt hat alles ohne Fehler funktioniert.
klar - phpmyadmin führt im hintergrund natürlich ebenfalls mysql_escape_string (oder etwas analoges aus), bevor es die von dir im textfeld eingegebenen daten an die DB abschickt.
Heißt das also ich muß es für die Zukunft anders machen und den String für das reinschreiben in die Datenbank maskieren?
ja, das solltest du _immer_ machen.
auch, um bei benutzereingaben zu verhindern, dass dir jemand weiteren sql-code unterjubeln kann, der dann z.b. daten löscht (sog. SQL code injection).
Und wenn ich den String wieder auslese umparsen?
Nur wäre das maskieren und zurück parsen im Script etwas mehr Aufwand was nicht wirklich schön ist :-(
nein, nur beim eintragen in die DB maskieren.
die DB erkennt diese maskierungen, und speichert die daten selsbt intern schon wieder unmaskiert ab.
beim auslesen bekommst du also automatisch wieder deine unmaskierten daten, hier ist keine weitere behandlung erforderlich(*).
gruss,
wahsaga
(*) ausser wenn magic_quotes_runtime aktiviert wäre, [linbk:http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime]