Mysql enfernt Backslashes

Guten Abend,
ich habe ein ernstes Problem.

Ich schreibe Tutorials in einer Textarea. Dann werden diese Tutorials in der MySql Datenbank gespeichert.

Jedoch habe ich das Problem das die Backslashes entfernt werden. Bei einem PHP Code ein großer Fehler.

Beispiel:

So schreibe ich das in die Textarea:

echo „<input type="text" name="text" />“

So wird es in der Datenbank gespeichert.

echo „“

Wie kriege ich es hin das der Code genauso gespeichert wird wie ich ihn schreibe?

MfG xXxPeterPanxXx

Indem du den Wert $_POST[‚text‘] nicht einfach so in die Datenbank einträgst, sondern noch mit mysql_real_escape_string().
[PHP]
$sql = „INSERT INTO tabelle (spalte) VALUES ('“.mysql_real_escape_string($_POST[‚text‘]).„')“;[/PHP]

Oder, da wir uns ja schon über mysqli unterhalten haben, mit dem mysqli prepare Mode.

Mfg

Das habe ich auch schon gedacht und ausprobiert, aber es will einfach nicht.

Die Codes werden immer ohne Backslashes abgespeichert.

So sieht der Query aus:

[php]
$updates = „UPDATE eintraege SET name = '“.$_POST[‚name‘].„', nameurl = '“.$_POST[‚nameurl‘].„', kategorie = '“.$_POST[‚kategorie‘].„', tutorial = '“.$_POST[‚tutorial‘].„', code = '“.$_POST[‚code‘].„', time = '“.$time.„’ WHERE id = ?“;
$update = $db->prepare($updates);
$update->bind_param(‚i‘, $_GET[‚erweitern‘]);
$update->execute();
$update->close();
[/php]

MfG xXxPeterPanxXx

echo „<input type="text" name="text" />“ ergibt . Wo sollten da Backslashes sein?

Machst du keine Fehlerabfragen?

An der Abfrage liegt es nicht. Der Code kommt ja schon falsch in der Datenbank an.

@crash: Eigentlich hast du Recht, aber ich will den Code genau so ausgeben. Gibt es keine Funktion mit der der Code genau so in der Datenbank ankommt wie ich in die textarea schriebe?

MfG xXxPeterPanxXx

schon klar, trotzdem ist es heutzutage sogar bei Microsoft üblich potentielle Fehler abzufangen. In deinem Fall ist egal welcher Fehler auftritt das verhalten unspezifiziert, d.h. du weißt nicht was passiert.

Wenn du bind für alle werte verwendest, sollte der Code 1:1 in der Tabelle ankommen wie er eingeben wurde.

Wie?

Du meinst ich soll nicht nur die WHERE Angebe binden sondern auch alle anderen Variablen?

Ich kann kein PHP aber in Perl wird das so gemacht, ja. Genau dafür gibt es doch die Methoden, dass du keine Werte mehr maskieren musst, das passiert automatisch.

Ich bin ein Idiot.:mrgreen:

Danke euch beiden!

MfG xXxPeterPanxXx