Hier ist ein kleines Skript um Umlaute in einer MySQL Datenbank anzupassen falls diese nicht mehr stimmen (ä statt ä etc.) Das Original findet ihr hier – ich habe das Skript erfolgreich getestet. Zugangsdaten müssen logischerweise angepasst werden. <?php /** * Alle kaputten Umlaute reparieren bei Umstellung von ISO->UTF8 * * @project – * @author Boris Bojic <bojic@devshack.biz> * @copyright Copyright (c) 2011, Boris Bojic (DevShack) * @version Fri, 23 Dec 2011 13:47:11 +0100 * @updated – * */ // === [ Content / Charset ] ============================================== header(‚Content-Type: text/html; charset=utf-8‘); // PHP auch explizit auf UTF-8 setzen mb_internal_encoding(‚UTF-8‘); $db = array(); $db[‚host‘] = „localhost“; $db[‚uname‘] = „mysql_user“; $db[‚password‘] = „mysql_pass“; $db[‚database‘] = „datenbankname“; $dbconnect = mysql_connect($db[‚host‘], $db[‚uname‘], $db[‚password‘]) or die („Konnte keine Verbindung zur Datenbank aufnehmen!“); mysql_select_db($db[‚database‘],$dbconnect) or die („Fehler beim Auswählen der Datenbank!“); mysql_set_charset(‚utf8‘); echo ‚<pre>‘; function getTables($db){ $result = mysql_query(„SHOW TABLES FROM “ . $db[‚database‘]); while($row = mysql_fetch_row($result)){ $res[] = $row[0]; } return $res; } function getColumns($table){ $table = mysql_real_escape_string($table); $mysqlres = mysql_query(„SHOW COLUMNS FROM “ . $table); while($row = mysql_fetch_row($mysqlres)){ $res[] = $row[0]; } return $res; } // Alle Tabellen ermitteln $tablesArray = getTables($db); // Alle Spalten pro Tabelle ermitteln und durcharbeiten foreach($tablesArray AS $table){ $affectedRows = 0; $spalten = getColumns($table); echo „Tabelle: “ . $table . „<br />“; foreach($spalten AS $spalte){ echo „…Spalte: “ . $spalte . „<br />“; $query = ‚ UPDATE `‘ . $table . ‚` SET `‘ . $spalte . ‚` = REPLACE(`‘ . $spalte . ‚`,“ß“, „ß“), `‘ . $spalte . ‚` = REPLACE(`‘ . $spalte . ‚`, „ä“, „ä“), `‘ . $spalte . ‚` = REPLACE(`‘ . $spalte . ‚`, „ü“, „ü“), `‘ . $spalte . ‚` = REPLACE(`‘ . $spalte . ‚`, „ö“, „ö“), `‘ . $spalte . ‚` = REPLACE(`‘ . $spalte . ‚`, „Ä“, „Ä“), `‘ . $spalte . ‚` = REPLACE(`‘ . $spalte . ‚`, „Ãœ“, „Ü“), `‘ . $spalte . ‚` = REPLACE(`‘ . $spalte . ‚`, „Ö“, „Ö“), `‘ . $spalte . ‚` = REPLACE(`‘ . $spalte . ‚`, „€“, „€“) ‚; mysql_query($query) OR die(mysql_error() . $query); $affectedRows += mysql_affected_rows(); } echo „Tabelle “ . $table . “ aktualisiert, Datensätze: “ . $affectedRows . „<br /><br />“; }