Um die vorhandene Datenbank von euc-kr auf utf8 umzustellen, habe ich sorgfältig (??) ein Backup erstellt und dann
mit EditPlus geöffnet. Dabei erschien die Meldung, dass Zeichen enthalten sind, die bei der aktuellen Codierung verloren gehen könnten,
ich habe die Warnung erst einmal ignoriert, auf UTF8 umgestellt und importiert … Verdammt ㅠㅠ Wegen der kaputten Zeichen klappt es nicht.
Schnell gesucht~~~~ aber letztlich keine Lösung gefunden …
(So etwas passiert, obwohl man beim Dump sogar Optionen wie –default-character-set angibt ㅠㅠ)
Mir blieb nichts anderes übrig, als den folgenden Quellcode zu finden und nach meinen Wünschen anzupassen (UTF8-Konvertierung, Auswahl der gewünschten Tabellen).
Migration abgeschlossen!!!! – Eine Migration ist wie immer lästig und anstrengend ㅠㅠ
[PHP]
$mysql_host = '********';
$mysql_db = '********';
$mysql_user = '********';
$mysql_pass = '********';
$fileName = 'db-backup';
$extention = "sql";
// Nur die benötigten Tabellen~
$select[] = 'g4_board';
$select[] = 'g4_board_file';
$select[] = 'g4_board_good';
$select[] = 'g4_board_new';
$select[] = 'g4_config';
$select[] = 'g4_group';
$select[] = 'g4_group_member';
$select[] = 'g4_write_cast';
$select[] = 'g4_write_delphibbs';
$select[] = 'g4_write_english';
$select[] = 'g4_write_girl';
$select[] = 'g4_write_gy';
$select[] = 'g4_write_humor';
$select[] = 'g4_write_module';
$select[] = 'g4_write_mypage';
$select[] = 'g4_write_notice';
$select[] = 'g4_write_poll';
$select[] = 'g4_write_qna';
$select[] = 'g4_write_skin';
$select[] = 'g4_write_talk';
$select[] = 'g4_write_temp';
$select[] = 'g4_write_temppds';
$select[] = 'g4_write_test';
$select[] = 'g4_write_tiptech';
$select[] = 'g4_write_varios';
$all = false; // Für vollständige INSERT-Anweisungen auf true setzen
$drop = true; // Für DROP-TABLE-Anweisungen auf true setzen
mysql_connect( $mysql_host, $mysql_user, $mysql_pass ) || die("Verbindung zur Datenbank fehlgeschlagen.");
mysql_select_db( $mysql_db ) || die("Verbindung zur DB fehlgeschlagen");
function bak_getTableNames($db)
{
$result[0] = mysql_list_tables($db);
$result[1] = mysql_num_rows($result[0]);
return $result;
}
function bak_getFields($table)
{
global $all;
$result = mysql_query("show fields from $table");
$i = 0;
while($keys = mysql_fetch_array($result))
{
if(!$i) $defaultOrder = $keys[Field];
if($keys[Key] == 'PRI')
{
$orderby = $keys[Field];
break;
}
$i++;
}
if(!$orderby) $orderby = $defaultOrder;
$result = mysql_query("select * from $table order by $orderby");
$nums = mysql_num_fields($result);
if($all == true)
{
for($i=0;$i<$nums;$i++)
{
$fields[] = mysql_field_name($result,$i);
}
$fields = "(".implode(",",$fields).") ";
}
while($rows = mysql_fetch_row($result))
{
for($i=0;$i<$nums;$i++)
{
$temp = $rows[$i];
$temp = str_replace("'","''", $temp);
$temp = str_replace("","\", $temp);
$temp = str_replace("n",'n', $temp);
$temp = str_replace("r",'r', $temp);
$temp = iconv('CP949', 'UTF-8', $temp);
$insertValues[$i] = $temp;
}
$return .= "INSERT INTO $table ".$fields."values ('".implode("','",$insertValues)."');n";
}
return $return;
}
$tables = bak_getTableNames($mysql_db);
if($tables[1] > 0)
{
$backText = “
# MysqlDump
# Host: „.$mysql_host.“
# Zeitpunkt: „.date(‚d.m.Y H:i‘).“
# Serverversion: „.mysql_get_server_info().“
# Datenbank: `“.$mysql_db.“`
# ——————————————————–nnnnn“;
while($rows = mysql_fetch_row($tables[0]))
{
$chk = false;
for($i=0;$i
[/PHP]




