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

C# und MySQL Datenbanken

Möchte man in C# eine Verbindung zu einer MySQL Datenbank herstellen so stellt man fest das dies nicht ohne weiteres möglich ist. Um mit einer MySQL zu reden benötigen wir den passenden ADO.NET Provider. Bei MySQL heißt das ganze MySQL Connector/NET und kann unter http://dev.mysql.com/downloads/connector/net/ bezogen werden.

Wer jetzt noch einen passenden Einstieg in die Thematik sucht dem seinen folgende Tutorien empfohlen:
http://www.seven-c.de/files/datenbankenhowto.htm
http://www.codeplanet.eu/tutorials/csharp/6-csharp/5-verbindung-zum-mysql-server-mit-csharp.html