2016-09-25 4 views
0

Ich habe ein Problem mit meinem msyql mit diesem Satz zu aktualisieren:Sonderzeichen in mysql ® speichern? php

davc® 50PCS 

wenn ich die unten Abfrage in MySQL Workbench ausführen es funktioniert:

UPDATE products 
SET 
    title = 'davc® 50PCS ' 
WHERE 
    product_id = '386' 

aber wenn ich laufe die gleiche Abfrage aus meinem Server gelingt es zwar zu laufen aber es löscht alles nach ®.

ich denke, ich sollte etwas mit Codierung tun? Ich benutze PHP und MySQL-Objekt.

dank

+0

sollten Sie es mit utf-8 – MRustamzade

+0

@MemedmedRustemzade schreiben, wie es geht? Können Sie mir bitte Codebeispiel zeigen – david

+4

[UTF-8 den ganzen Weg] (http://stackoverflow.com/questions/279170/utf-8-all-the-way-through) –

Antwort

-1

So etwas wie dieses

$text = utf8_encode ("davc® 50PCS "); 

UPDATE products SET 
title = "{$text}" WHERE product_id = '386' 

Wichtig: Ihre SQL ändern Sie es von SQL-Injektionen zu sichern. Etwas wie folgt aus: http://www.w3schools.com/php/php_mysql_prepared_statements.asp

+0

Vielen Dank für Ihre Antwort, aber dieser Druck â ® anstelle von ® – david

+1

Bitte nicht blind empfehlen ['utf8_encode()'] (http://php.net/utf8_encode). Es konvertiert nur von ISO-8859-1 zu UTF-8 und Sie haben keine Ahnung, was die Quellcodierung auf der Frage basiert. –

0

https://stackoverflow.com/a/38363567/1766831 diskutiert beide Probleme, die Sie gestoßen:

  • „Trunkierung“, die in der Regel durch den Text zu sein latin1 verursacht wird, sondern versuchen, in UTF-8 zu speichern (oder utf8mb4).
  • "Mojibake" (wie â®), die wiederum durch den Text und die Spalte widersprüchlich verursacht wird. Es beinhaltet aber auch, dass die Verbindungsparameter nicht mit der Codierung im Client übereinstimmen.