Sie sollten einfach nicht rawurlencode für entkommen Daten für Ihre Datenbank.
Jedes Zielformat verfügt über eine eigene Escape-Methode, die im Allgemeinen sicherstellt, dass es sicher von einem Ort zum anderen gespeichert/angezeigt/übertragen wird und am anderen Ende nicht dekodieren muss.
Zum Beispiel:
- Textes im HTML-Anzeige, Verwendung htmlentities oder htmlspecialchars
- in der Datenbank zu speichern, verwenden mysqli_real_escape_string, pg_escape_string, etc ...
- Variablennamen Übertragung, Nutzung urlencode
- übertragen variabler Inhalt, benutze rawurlencode
- etc ...
Sie sollten feststellen, dass das Entschlüsseln dieser Dinge oft vom Browser/der Datenbank ausgeführt wird. Es werden also keine Daten gespeichert. Und Decodierung muss nicht von Ihrem Code durchgeführt werden.
Das Problem ist wahrscheinlich, weil Sie eine Sequenz mit Rawurlencode entkommen, aber Ihre Datenbank erwartet das Escape-Format für die spezifische Marke der Datenbank. Und entkam es mit dieser Annahme, die falsch war, was deine Saite durcheinander brachte.
Fazit: Finden Sie heraus, welche Marke Datenbank, die Sie verwenden, suchen die spezifische Escape-Funktion für die Datenbank, und verwenden Sie die richtige Flucht Funktion auf alle Ihre Inhalte „transferral“.
S.S .: einige Definition möglicherweise nicht korrekt, bitte Kommentar dazu. Ich wollte die Idee festhalten, verwende aber wahrscheinlich nicht die richtigen Begriffe.
Gibt es einen Grund, Rawlurlencode für riesige Daten wie Textarea zu verwenden? sollte es nicht mit der POST-Methode? – ajreal
Ich benutze Rawurlencode, um alle Symbole vor dem Speichern in der Datenbank zu codieren, nicht für POST – zHs