PDO-Verbindung: UTF-8 Deklaration mit SET NAMES / CHARACTER SET?

8

Laut php.net, StackOverflow und anderen Vertrauensquellen kann ich vier verschiedene Möglichkeiten finden, UTF-8 auf PDO-Verbindungen zu setzen, aber ich finde nicht, welche davon besser zu wählen ist.

Ein PDO-Verbindungscode (und einige Inits):

%Vor%

Also, was ich verstanden habe, ist, dass Methode 1 nur mit PHP 5.3+ funktioniert (aber es scheint, dass es ein wenig buggy ist), und Methode 2 ist nur für MySQL. Unterschiede zwischen Methode 3 und 4 ist MySQL-Sache , aber ich tue es immer noch nicht wisse, man ist besser. Und gibt es eine Möglichkeit, SET NAMES in PDO-Attributen aufzurufen, aber nicht nur für MySQL?

Danke!

    
Joan 26.12.2012, 15:16
quelle

2 Antworten

6

Das Setzen in DSN ist der only richtige Weg (obwohl es nur seit 5.3 unterstützt wird).
Sie können diese und SET NAMES gleichzeitig verwenden.

Alle anderen Möglichkeiten werden die berüchtigte halb-fiktive GBK-Injektion ermöglichen.

Bitte beachten Sie, dass Ihre Einstellung für error_reporting () völlig falsch ist. es muss unbedingt sein -1. Wenn Sie Probleme mit der Anzeige von Fehlern haben, gibt es dafür eine geeignete ini-Einstellung namens display_errors , die zur Laufzeit gesetzt werden kann.
Während error_reporting level des Fehlers festlegt, sollte es immer auf Maximum gesetzt sein.

    
Your Common Sense 26.12.2012, 15:42
quelle
-2

Ich schreibe diesen Code immer in meine dbconfig-Datei:

%Vor%     
Ehsan 26.12.2012 15:19
quelle

Tags und Links