PDO und UTF-8 Sonderzeichen in PHP / MySQL?

8

Dieser Code war ich versuchen. Ich verwende Mysql und PHP 5.3

%Vor%

= & gt; Ich habe gute utf-8 Render-Anzeige, gut gemacht.

Aber jetzt erstelle ich ein Klassen-PDO, um einfach zu erweitern und einfacher zu bleiben

%Vor%

Aber es zeigt mit meinem Charakter so etwas wie "????"

Ich habe in stackoverflow diesen Link gefunden, es sieht genauso aus wie ich Sonderzeichen in PHP / MySQL

Es sieht genauso aus wie mein Problem = & gt; Ich versuche es zu beheben. Aber ich habe es immer noch nicht verstanden. $this->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAME'utf8'");

Jeder kann mir sagen, was das Problem ist? Wie kann ich es korrigieren?

Danke

    
sophie 03.11.2011, 22:40
quelle

3 Antworten

34

Sie vermissen ein S : es ist SET NAMES und nicht SET NAME :

%Vor%

Sie müssen es natürlich auch deaktivieren. Auch PDO::MYSQL_ATTR_INIT_COMMAND kann nicht mit PDO::setAttribute() festgelegt werden Sie haben Ihre Datenbankverbindung hergestellt (der konstante Name sagt alles), Sie müssen ihn im Konstruktor Verwenden Sie das Argument $driver_options wie folgt:

%Vor%

Eine Alternative dazu ist, genau diese Abfrage direkt nach dem Verbinden auszuführen:

%Vor%     
Alix Axel 03.11.2011, 22:48
quelle
2

Ich hatte die gleichen Probleme und fand heraus, nachdem ich 1000000 verschiedene Optionen getestet habe, dass die Standard-Mysql-Engine immer noch MyISAM bleibt.

Überprüfen, ob InnoDB die Standard-Speicher-Engine ist:

Geben Sie den Befehl SHOW VARIABLES LIKE 'have_innodb'; aus, um zu bestätigen, dass InnoDB überhaupt verfügbar ist.

Geben Sie dann den Befehl SHOW ENGINES; ein, um alle verschiedenen MySQL-Speicher-Engines anzuzeigen.

Suchen Sie nach DEFAULT in der Zeile InnoDB und NICHT nach der Zeile MyISAM . Mir wurde klar, dass meine Einstellung eine Einstellung enthielt, die mich daran hinderte, die Standard-Engine mit SET storage_engine=MYISAM; zu ändern. In meinem Fall kontaktierte ich meinen Provider und wurde angewiesen, die Option zu ändern, um die Standard-Engine zu ändern. Hoffe das hilft!

    
dorogz 23.10.2012 15:19
quelle
0

Die Möglichkeit, Sonderzeichen mit PDO einzufügen, folgen Sie einfach den folgenden Schritten:

1) Setzen Sie die Verbindungsklasse Attribut zu Ihnen.

%Vor%

2) Sie können jetzt htmlspecialchars verwenden, während Sie die Abfrage erstellen und in die Datenbank einfügen:

%Vor%

Und es wird gut funktionieren.

    
Amarjit Kushwaha 08.07.2016 08:36
quelle

Tags und Links