Hallo,
aus einer Datei lese ich Daten aus, die ich in eine MySQL-Tabelle speichern möchte.
Die Daten der Datei sehe ungefähr wie folgt aus:
Also wie man sieht, sind die Namen urlencoded.
Nach dem Öffnen der Datei möchte ich die Daten alle urldecoded in meine Tabelle übertragen und zwar mache ich das wie folgt:
Soweit wird alles übertragen. Bis auf urlencoded Umlaute wie ä,ö,ü... jedoch Sonderzeichen werden korrekt übertragen.
Statt ö in die MySQL-Tabelle zu schreiben, bricht der Name an der Stelle einfach ab... woran liegt das?
Zum besseren Verständnis, wie der Name "abgebrochen wird", noch ein Bild aus phpmyadmin:
Die Tabelle und die Spalten haben die Kollation utf8_general_ci.
aus einer Datei lese ich Daten aus, die ich in eine MySQL-Tabelle speichern möchte.
Die Daten der Datei sehe ungefähr wie folgt aus:
Code:
70327,Henry+IV,2572,1,720,1 71996,M%40rk92,-1,1,82,1 70405,housemouse87,2324,1,1617,18 69801,junker+herb,2646,6,14278,1 72050,DerTodesKrieger,2729,1,137,1 72051,nanahara+2,-1,1,68,1 71638,Reich,2611,1,742,1 71755,B%F6hmiboy,2631,1,506,18
Nach dem Öffnen der Datei möchte ich die Daten alle urldecoded in meine Tabelle übertragen und zwar mache ich das wie folgt:
PHP-Code:
// connect und kram
mysql_query("SET NAMES 'utf8'") OR DIE (mysql_error());
mysql_query("SET CHARACTER SET 'utf8'") OR DIE (mysql_error());
// ... Oeffnen der Datei usw.
// ...
while($zeile = gzgets($handle, 4096))
{
$zerlegung = explode(",", $zeile); // Teile werden durch Komma getrennt
mysql_query("INSERT INTO ".$mysql_tabelle."
(id,name,drei,vier,fuenf,sechs)
VALUES ('".mysql_real_escape_string($zerlegung[0])."',
'".mysql_real_escape_string(urldecode($zerlegung[1]))."',
'".mysql_real_escape_string($zerlegung[2])."',
'".mysql_real_escape_string($zerlegung[3])."',
'".mysql_real_escape_string($zerlegung[4])."',
'".mysql_real_escape_string($zerlegung[5])."')") OR DIE (mysql_error());
}
Statt ö in die MySQL-Tabelle zu schreiben, bricht der Name an der Stelle einfach ab... woran liegt das?
Zum besseren Verständnis, wie der Name "abgebrochen wird", noch ein Bild aus phpmyadmin:
Die Tabelle und die Spalten haben die Kollation utf8_general_ci.
Kommentar