2017-09-28 1 views
1

Ich habe ein Problem mit einem JSON in mysql TEXT-Feld gespeichert, die Sache ist, dass alles in Ordnung ist, bis ich benutze '(single quote) der JSON dann gespeichert wird und jedes Mal ich es speichern es zurück hängt ein Schrägstrich wie: \ '\\' \\‘usw.Json von Mysql bricht

dann einige Zeichen codiert sind, nicht korrekt \ u00e0

<div class="wpbs-calendar-legend" data-info="{&quot;default&quot;:{&quot;name&quot;:{&quot;default&quot;:&quot;Available&quot;,&quot;hr&quot;:&quot;Slobodno&quot;,&quot;cs&quot;:&quot;Volno&quot;,&quot;da&quot;:&quot;Ledigt&quot;,&quot;nl&quot;:&quot;Vrij&quot;,&quot;en&quot;:&quot;Available&quot;,&quot;fr&quot;:&quot;Libre&quot;,&quot;de&quot;:&quot;Frei&quot;,&quot;hu&quot;:&quot;Szabad&quot;,&quot;it&quot;:&quot;Libero&quot;,&quot;ro&quot;:&quot;Disponobil&quot;,&quot;ru&quot;:&quot;\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e&quot;,&quot;sk&quot;:&quot;Vo\u013en\u00fd&quot;,&quot;es&quot;:&quot;Libre&quot;,&quot;sv&quot;:&quot;Ledigt&quot;,&quot;uk&quot;:&quot;B\u0456\u043b\u044c\u043d\u043e&quot;,&quot;no&quot;:&quot;&quot;},&quot;color&quot;:&quot;#f1ffcc&quot;,&quot;splitColor&quot;:false,&quot;bookable&quot;:&quot;yes&quot;,&quot;auto-pending&quot;:&quot;no&quot;,&quot;sync&quot;:&quot;no&quot;},&quot;1&quot;:{&quot;name&quot;:{&quot;default&quot;:&quot;Booked&quot;,&quot;hr&quot;:&quot;Zauzeto&quot;,&quot;cs&quot;:&quot;Obsazeno&quot;,&quot;da&quot;:&quot;Booket&quot;,&quot;nl&quot;:&quot;Bezet&quot;,&quot;en&quot;:&quot;Booked&quot;,&quot;fr&quot;:&quot;Occup\u00e9&quot;,&quot;de&quot;:&quot;Belegt&quot;,&quot;hu&quot;:&quot;Foglalt&quot;,&quot;it&quot;:&quot;Prenotato&quot;,&quot;ro&quot;:&quot;Rezervat&quot;,&quot;ru&quot;:&quot;\u0417\u0430\u043d\u044f\u0442\u043e&quot;,&quot;sk&quot;:&quot;Obsaden\u00fd&quot;,&quot;es&quot;:&quot;Reservado&quot;,&quot;sv&quot;:&quot;Bokat&quot;,&quot;uk&quot;:&quot;\u0417\u0430\u0439\u043d\u044f\u0442\u043e&quot;,&quot;no&quot;:&quot;&quot;},&quot;color&quot;:&quot;#ff524c&quot;,&quot;splitColor&quot;:false,&quot;bookable&quot;:false,&quot;auto-pending&quot;:&quot;yes&quot;,&quot;sync&quot;:&quot;yes&quot;},&quot;2&quot;:{&quot;name&quot;:{&quot;en&quot;:&quot;>14H&quot;,&quot;nl&quot;:&quot;&quot;,&quot;et&quot;:&quot;&quot;,&quot;fi&quot;:&quot;&quot;,&quot;fr&quot;:&quot;D\u00e8s 14H&quot;,&quot;de&quot;:&quot;&quot;,&quot;pt&quot;:&quot;&quot;,&quot;ro&quot;:&quot;&quot;,&quot;default&quot;:&quot;D\u00e8s 14H&quot;},&quot;color&quot;:&quot;#f1ffcc&quot;,&quot;splitColor&quot;:&quot;#ff524c&quot;,&quot;bookable&quot;:&quot;yes&quot;,&quot;hide&quot;:false,&quot;auto-pending&quot;:&quot;no&quot;,&quot;sync&quot;:&quot;no&quot;},&quot;3&quot;:{&quot;name&quot;:{&quot;en&quot;:&quot;<12H&quot;,&quot;nl&quot;:&quot;&quot;,&quot;et&quot;:&quot;&quot;,&quot;fi&quot;:&quot;&quot;,&quot;fr&quot;:&quot;Jusqu\\" \u00e0="" 10h","de":"","pt":"","ro":"","default":"jusqu\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'\u00e0="" 10h"},"color":"#ff524c","splitcolor":"#f1ffcc","bookable":"yes","hide":false,"auto-pending":"no","sync":"no"}}'=""></div> 

und in meinem insepct Fenster sieht wie folgt aus:

developer console

Ich benutze WordPress, damit diese json_encoded Zeichenfolge mit update_option in der Datenbank gespeichert wird. Ich habe versucht, stripslashes() die json codierte Zeichenkette auf update_option, aber das behebt das Problem nicht.

Kann mir hier jemand helfen?

Danke für Ihre Zeit!

+0

Die Daten info ist htmlentity codiert. – Daniel

Antwort

1

Es sieht aus wie Ihre SQL-Einfügung - sehr korrekt - die Daten entkommt.

Jetzt, wenn Sie die Daten aus SQL benötigen, müssen Sie das Entfernen mit Hilfe von stripeslashes entfernen.

Wenn Ihre Variable $jsonResult ist, verwenden Sie sie als stripslashes($jsonResult).

+0

Ich habe bereits stripslashes versucht und löst mein Problem nicht, da die json_encoded Zeichenfolge mit der update_option Funktion von WordPress gespeichert wird (muss Frage bearbeiten, um zu reflektieren, dass ich Wordpress verwende) –

+0

Escaping funktioniert nicht so. Die Schrägstriche werden hinzugefügt, das Ergebnis wird an die Datenbank gesendet, die Schrägstriche werden vom SQL-Parser verbraucht und nicht in den in der Datenbank gespeicherten Daten enthalten. – Quentin

1

Nein, nicht Htmlentities, nicht stripeslashes. Wenn Sie die JSON von json_encode() bekommen, einen zusätzlichen Parameter verwenden, um die "Unicode" Codierung zu vermeiden:

$x = json_encode($s, JSON_UNESCAPED_UNICODE); 

Siehe Beispiel # 2 in http://php.net/manual/en/function.json-encode.php (Benötigt PHP 5.4.0)