/*---------------------------------------------------------------*/
|
/*
|
Titre : Code pour convertir dans un format Latin ou UTF8
|
|
URL : https://phpsources.net/code_s.php?id=718
|
Auteur : nixi54
|
Date édition : 29 Jan 2008
|
*/
|
/*---------------------------------------------------------------*/
|
|
die("faite un backup de votre database MySQL et enlever cette ligne");
|
|
set_time_limit(0);
|
|
// format de départ:
|
$convert_from = 'latin1_swedish_ci';
|
|
// Le format d'arrivée:
|
$convert_to = 'utf8_general_ci';
|
|
// Initialiser les caracteres dans le bon format:
|
$character_set= 'utf8';
|
|
$show_alter_table = true;
|
$show_alter_field = true;
|
|
// DB logs information
|
$username = 'user';
|
$password = 'pass';
|
$database = 'base';
|
$host = 'localhost';
|
|
mysql_connect($host, $username, $password);
|
mysql_select_db($database);
|
|
$rs_tables = mysql_query(" SHOW TABLES ") or die(mysql_error());
|
|
echo '<pre>';
|
while ($row_tables = mysql_fetch_row($rs_tables)) {
|
$table = mysql_real_escape_string($row_tables[0]);
|
|
|
// ALTER TABLE 'compte' DEFAULT CHARACTER SET utf8
|
if ($show_alter_table) {
|
echo("ALTER TABLE '$table' DEFAULT CHARACTER SET $character_set;\r\n");
|
}
|
|
$rs = mysql_query(" SHOW FULL FIELDS FROM '$table' ") or die(mysql_error());
|
while ($row=mysql_fetch_assoc($rs)) {
|
|
if ($row['Collation']!=$convert_from)
|
continue;
|
|
// le champ peut-etre null?
|
if ($row['Null']=='YES') {
|
$nullable = ' NULL ';
|
} else {
|
$nullable = ' NOT NULL';
|
}
|
|
// est-ce que les champs Default sont nul, une chaine, ou rien?
|
if ($row['Default']==NULL) {
|
$default = " DEFAULT NULL";
|
} else if ($row['Default']!='') {
|
$default = " DEFAULT '".mysql_real_escape_string($row['Default']).
|
"'";
|
} else {
|
$default = '';
|
}
|
|
|
// ALTER TABLE 'compte' CHANGE 'email' 'email' VARCHAR( 50 ) CHARACTER SET utf8
|
// COLLATE utf8_general_ci NULL DEFAULT NULL
|
if ($show_alter_field) {
|
$field = mysql_real_escape_string($row['Field']);
|
echo
|
"ALTER TABLE '$table' CHANGE '$field' '$field' $row[Type] CHARACTER SET" .
|
" $character_set COLLATE $convert_to $nullable $default; \r\n";
|
}
|
}
|
}
|
|
| ?> |