Thread Verfasser: Querndt
Thread ID: 23
Thread Info
Es gibt 6 Beiträge zu diesem Thema, und es wurde 4361 Mal angesehen.  Ausserdem wurden Dateien angehängt.
 Thema drucken
Datenbank Kollation
Querndt
Hallo Gemeinde,

muss ja mal das Forum befüllen. :-)

Ich habe mal eine Frage zum MYSQL Server bzw. spezifisch einer Datenbank die genutzt wird für PHP Fusion.

Also standardmäßig ist die Datenbank mit der Kollation latin1_swedish_ci gesetzt.

Jetzt habe ich aber schon vielerorts gelesen das es besser wäre die Kollation auf utf8_general_ci zu setzen, grade wegen der Umlaute usw. und das am besten vor der Installation einer PHP Fusion, dann brauch man bei Problemen usw. nicht konvertieren.

Wie seht ihr das ?

LG

Papst
DickeslachenDickeslachenDickeslachen
Dumm ist nur der, der dummes tut
DickeslachenDickeslachenDickeslachen
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
John Doe
Die Kollation bestimmt den verwendeten "Zeichensatz" oder auch "Charset" genannt.
Da die meisten Infusionen diesen Charset nutzen (und auch PHP-Fusion selbst), empfiehlt es sich generell, die Datenbank auf UTF-8 zu stellen. Damit lassen sich die meisten Zeichen (und vor Allem auch die berühmt-berüchtigten Umlaute) ohne Probleme darstellen.
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Querndt
Hi Layzee,

danke für die Super schnelle Antwort.

LG

Papst

Zusammengefügt am 12. Januar 2014 um 16:59:41:
Moin,

ich nochmal gg^^

Hab noch mal ne Frage zur Kollation. Ich hab bei ner neuen Datenbank vergessen die umstellung auf utf8_general_ci vorzunehmen, das habe ich aber nun nachträglich vorgenommen. Jetzt ist es ja so das vorhandene Tabellen nicht umgestellt werden, sondern die von Hand gemacht werden muss. Jetzt möchte ich aber nicht unbedingt jede einzelne Tabelle von Hand umstellen müssen, bei ca. 200 Tabellen würd ich ewig brauchen, gibt es eine möglichkeit das ganze, schneller zu machen.

MFG

Papst

Zusammengefügt am 12. Januar 2014 um 17:!34:21:
So nun habe ich etwas gefunden mal sehen ob das geholfen hat, wenn jemand der meinung ist das war ganz Falsch, dann bitte Korregieren.

Ich hab mir nun einfach die SQL Exportiert und mit Notepadd++ geöffnet. Hab mir dann über die Suche bei Notepadd++ alles anziegen lassen wo "latin" stand und hab dann alles automatisch durch utf8 ersetzten lassen.

Nun SQL Datei wieder Importiert und siehe, da alles umgestellt auf utf8.

LG

Papst
Bearbeitet von Querndt am 12. Januar 2014 16:34:21
DickeslachenDickeslachenDickeslachen
Dumm ist nur der, der dummes tut
DickeslachenDickeslachenDickeslachen
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
John Doe
Das ist sicher eine der Möglichkeiten, Datenbank-Tabellen auch nachträglich auf UTF-8 umzustellen und wenn es so funktioniert ist doch prima.

Man kann es aber auch einfach per PHP über ein kleines Script lösen.
Als PHP-Datei speichern, auf den Webserver laden und einmal ausführen.


<?php
$db = mysql_connect('localhost','username','password');
if(!$db) echo "Kann nicht zur Datenbank verbinden!".chr(10);
mysql_select_db('database');
$result=mysql_query('show tables');
while($tables = mysql_fetch_array($result)) {
 foreach ($tables as $key => $value) {
   $query = "ALTER TABLE $value CONVERT TO CHARACTER SET utf8 ↩
             COLLATE utf8_unicode_ci";
   echo $query.chr(10);
   mysql_query($query);
   if (mysql_error()) echo mysql_error().chr(10);
 }
}
echo "Erledigt!".chr(10);
?>


Die Werte 'localhost','username','password' und 'database' müssen natürlich hierbei durch die entsprechenden Daten ersetzt werden.

ACHTUNG:
Das funktioniert nur ab MySQL-Version 5!

Bearbeitet von John Doe am 12. Januar 2014 19:19:51
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Patrick
Bei mir funktioniert es nicht habe die datei unter dem Namen utf8_change.php in das root verzeichnis hochgeldane und im browser aufgerufen dann passiert das wie auf dem bild zu sehen ist.

Meine Version

MySQL-Version 5.5.31
Patrick hat folgende Datei angehängt:
Du hast nicht die Berechtigung die Anhäge dieses Themas zu sehen.

Bearbeitet von Patrick am 13. Januar 2014 15:48:11
Selfmade Is Not Easy Wink
Information:
PHP Version: 8.1.x •  MySQL Version: 8.0 •  PHP-Fusion: IPv9-DE-MOD
 
SethurLP
gleicher Fehler bei mir
Information:
PHP Version: Nicht ausgewählt •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: Nicht ausgewählt
 
Springe ins Forum: