Kleines MySQL / UTF-8 Problem

Es war einmal eine Datenbank deren Tabellen waren im UTF-8 Format. Auch die PHP Anwendung benutze UTF-8. Also wird einfach mittels:

mysql_connect($db_host, $db_name, $db_password);
mysql_select_db($db_name);

$sql = "SELECT * FROM Cubes WHERE ID = '" . $id . "' ORDER BY " . $NameLang;
$result = mysql_query($sql);

eine Verbindung aufgebaut und die Datenbank abgefragt. Nun könnte man annehmen das das ganze als UTF-8 zurück kommt aber wie so oft im Leben war dem nicht so. Die Umlaute etc. wurden falsch kodiert ausgeliefert. Die Lösung des Problemes ist glücklicherweise simpel und einfach (sobald man die Lösung kennt :) ) Es muss nach der Verbindung zur Datenbank die Verbindung auf UTF-8 umgestellt werden. Dies geschieht mittels mysql_query(„SET NAMES ‚UTF8′“);. Nun sieht das ganze so aus:

mysql_connect($db_host, $db_name, $db_password);
mysql_query("SET NAMES 'UTF8'");
mysql_select_db($db_name);

$sql = "SELECT * FROM Cubes WHERE ID = '" . $id . "' ORDER BY " . $NameLang;
$result = mysql_query($sql);

Und wieder ein Problem gelöst :)

Automatisch ein ERM mittels MySQL erstellen

Vor einigen Tagen stand ich vor dem Problem aus einer MySQL Datenbank ein Entity-Relationship-Modell (ERM) zu erstellen. Natürlich kann man das nachträglich von Hand tun, aber man muss sich ja nicht unnötig Arbeit machen. Nach einigem Suchen stieß ich auf die MySQL Workbench welche unter http://dev.mysql.com/downloads/workbench/5.1.html bezogen werden kann.

Dort kann man dann einen SQL Dump importieren und schon erstellt die Workbench ein ERM. Allerdings sollte man darauf achten das die Workbench nur die MySQL eigenen Dumps verarbeiten kann und nicht solche die mit Tools wie PhpMyAdmin oder mittels HeidiSQL erstellt wurden.

Weitere Informationen gibt es unter:
http://de.wikipedia.org/wiki/Entity-Relationship-Modell

Heise löscht alte Foren

In den nächsten Tagen beginnt heise damit alte Newsticker, Extra und user2User Foren zu löschen die ein bestimmtes Alter überschritten haben. Dazu ein Zitat aus dem heise Forum:

Hallo zusammen,

wir werden in den nächsten Tagen damit beginnen, Newsticker-Foren
sowie Foren aus dem Extra-Bereich der user2User-Foren zu löschen, die
älter als zwei Jahre sind. Bisher haben wir zwar so gut wie nie Foren
geschlossen, doch uns ist vor einiger Zeit aufgefallen, dass viele
Diskussionen, die vor Jahren in den Foren stattgefunden haben, heute
keine Bedeutung mehr haben. Um die Datenbank nicht zu sehr zu
belasten, werden wir uns rund eine Woche Zeit nehmen für das Löschen
der rund 10 Millionen Beiträge. Anschließend starten wir die
überarbeitete Forensuche, die leistungsfähiger ist als die jetzige.

Mit freundlichen Grüßen
Michael Wilde

Weitere Informationen gibt es unter:
http://www.heise.de/extras/foren/S-Wir-loeschen-in-den-naechsten-Tagen-Foren-die-aelter-als-zwei-Jahre-sind/forum-7262/msg-15773270/read/
http://www.heise.de/tp/blogs/5/118074