mysql - lustig Platz Zeichen auf den Wert hinzugefügt, wenn es in der Tabelle einfügen
Frage
Ich habe einen PHP-Skript, dass Einsätze Werte in mySQL Tabelle
INSERT INTO stories (title) VALUES('$_REQUEST[title]);
überprüfte ich die Werte meiner Anfrage Variablen, bevor sie in der Tabelle gehen und es ist in Ordnung.
Aber wenn ich Titel hinzufügen = john auf die Tabelle zum Beispiel
ich etwas wie folgt aus:
title = "[][][][]john"
und wenn ich den Wert extrahieren, es ist ein Newline dann John.
Ich habe meine Spalten auf utf-8, habe ich versucht, schwedisch-Zeichensatz als auch.
Hinweis: Ich habe nicht diesen Fehler, wenn Werte aus dem Einfügen von phpMyAdmin Kommandozeilen
Lösung
Sie müssen alle Array-Notation {}
um, wenn innerhalb ""
verwendet.
$q="INSERT INTO stories(title) VALUES('{$_REQUEST['title']}')";
BTW, es wäre besser, wenn die Überprüfung Ihres $ _REQUEST Vars zu speichern die hygienisiert Versionen in neuen Variablen, und sicher zu sein, sie mit zu entkommen? real_escape_string()
Andere Tipps
SET NAMES <encoding>
Abfrage muss jedes Mal, wenn Sie Verbindung zu Ihrer Datenbank ausgeführt werden.
sehr einfache Regel.
wo <encoding>
ist Ihre HTML-Seite Codierung in mysql Dialekt (utf8
für das utf-8)
Sie müssen den Zeichensatz der Datenbank überprüfen, den Server und den Client.
Beachten Sie, dass es nicht ein schwedisch-Zeichensatz, es ist eine schwedische Sortierung.