Script che genera sql codice per cambio charset delle tabelle e database Mysql

La pagina è completamente finzionante basta farla girare sul sever, bisogna però cambiare nello script nome password e host del database in uso.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title>Script di utilità</title>
<style><!--
h1 { font-family:Arial; font-size:12pt; color:rgb(6,0,128); }
h2 { font-family:Arial; font-size:12pt; color:rgb(0,72,153); }
p { font-family:Arial; color:rgb(0,0,0); }
p.namo-bullet1 { font-family:Arial; font-size:12pt; color:rgb(69,0,138); }
p.namo-bullet2 { font-family:Arial; font-size:10pt; color:rgb(77,77,38); }
--></style>
</head>
<body background="utilitybg.gif" bgcolor="#C9C9DA" text="black" link="#8080FF"
vlink="gray" alink="#4B5598"><p align="center"><h3>Script di utilità - Genera sql per cambio charset</h3></p>
<?php
    $hostname
= "127.0.0.1";
   
$dbuname = "root";
   
$dbpass = "mysql";
   
$db_prefix = 'dw_';
   
mysql_connect($hostname, $dbuname, $dbpass);
   
$lista_db = mysql_list_dbs();
   echo
"<p align="center"><b>Questo script genera sql per cambio charset</b></p>";
   echo
"<p align="center">Database in elenco in phpmyadmin:<br>
          <form name="
form" method="post">
        <select name="
dbname">";
         
$i = 0;
         
$conteggio = mysql_num_rows($lista_db);
          while (
$i < $conteggio) {
             
$dbname = mysql_db_name($lista_db, $i);
               echo
"<option value="$dbname">$i - $dbname</option>";
             
$i++;
          }
      echo
"</select><br>
        Characterset-Collate:<br><select name="
characterset-collate">
<option value="
armscii8-">armscii8 - (ARMSCII-8Armenian)</option>
<option value="
armscii8_bin-armscii8">armscii8_bin - Armeno,Binario</option>
<option value="
armscii8_general_ci-armscii8">armscii8_general_ci - Armeno,case-insensitive</option>
<option value="
ascii-">ascii - (USASCII)</option>
<option value="
ascii_bin-ascii">ascii_bin - EuropeoOccidentale(multilingua),Binario</option>
<option value="
ascii_general_ci-ascii">ascii_general_ci - EuropeoOccidentale(multilingua),case-insensitive</option>
<option value="
big5-">big5 - (Big5TraditionalChinese)</option>
<option value="
big5_bin-big5">big5_bin - CineseTradizionale,Binario</option>
<option value="
big5_chinese_ci-big5">big5_chinese_ci - CineseTradizionale,case-insensitive</option>
<option value="
binary-binary">binary - (Binarypseudocharset)</option>
<option value="
binary-binary">binary - Binario</option>
<option value="
cp1250-">cp1250 - (WindowsCentralEuropean)</option>
<option value="
cp1250_bin-cp1250">cp1250_bin - EuropeoCentrale(multilingua),Binario</option>
<option value="
cp1250_croatian_ci-cp1250">cp1250_croatian_ci - Croato,case-insensitive</option>
<option value="
cp1250_czech_cs-cp1250">cp1250_czech_cs - Ceco,case-sensitive</option>
<option value="
cp1250_general_ci-cp1250">cp1250_general_ci - EuropeoCentrale(multilingua),case-insensitive</option>
<option value="
cp1250_polish_ci-cp1250">cp1250_polish_ci - Polacco,case-insensitive</option>
<option value="
cp1251-">cp1251 - (WindowsCyrillic)</option>
<option value="
cp1251_bin-cp1251">cp1251_bin - Cirillico(multilingua),Binario</option>
<option value="
cp1251_bulgarian_ci-cp1251">cp1251_bulgarian_ci - Bulgaro,case-insensitive</option>
<option value="
cp1251_general_ci-cp1251">cp1251_general_ci - Cirillico(multilingua),case-insensitive</option>
<option value="
cp1251_general_cs-cp1251">cp1251_general_cs - Cirillico(multilingua),case-sensitive</option>
<option value="
cp1251_ukrainian_ci-cp1251">cp1251_ukrainian_ci - Ucraino,case-insensitive</option>
<option value="
cp1256-">cp1256 - (WindowsArabic)</option>
<option value="
cp1256_bin-cp1256">cp1256_bin - Arabo,Binario</option>
<option value="
cp1256_general_ci-cp1256">cp1256_general_ci - Arabo,case-insensitive</option>
<option value="
cp1257-">cp1257 - (WindowsBaltic)</option>
<option value="
cp1257_bin-cp1257">cp1257_bin - Baltico(multilingua),Binario</option>
<option value="
cp1257_general_ci-cp1257">cp1257_general_ci - Baltico(multilingua),case-insensitive</option>
<option value="
cp1257_lithuanian_ci-cp1257">cp1257_lithuanian_ci - Lituano,case-insensitive</option>
<option value="
cp850-">cp850 - (DOSWestEuropean)</option>
<option value="
cp850_bin-cp850">cp850_bin - EuropeoOccidentale(multilingua),Binario</option>
<option value="
cp850_general_ci-cp850">cp850_general_ci - EuropeoOccidentale(multilingua),case-insensitive</option>
<option value="
cp852-">cp852 - (DOSCentralEuropean)</option>
<option value="
cp852_bin-cp852">cp852_bin - EuropeoCentrale(multilingua),Binario</option>
<option value="
cp852_general_ci-cp852">cp852_general_ci - EuropeoCentrale(multilingua),case-insensitive</option>
<option value="
cp866-">cp866 - (DOSRussian)</option>
<option value="
cp866_bin-cp866">cp866_bin - Russo,Binario</option>
<option value="
cp866_general_ci-cp866">cp866_general_ci - Russo,case-insensitive</option>
<option value="
cp932-">cp932 - (SJISforWindowsJapanese)</option>
<option value="
cp932_bin-cp932">cp932_bin - Giapponese,Binario</option>
<option value="
cp932_japanese_ci-cp932">cp932_japanese_ci - Giapponese,case-insensitive</option>
<option value="
dec8-">dec8 - (DECWestEuropean)</option>
<option value="
dec8_bin-dec8">dec8_bin - EuropeoOccidentale(multilingua),Binario</option>
<option value="
dec8_swedish_ci-dec8">dec8_swedish_ci - Svedese,case-insensitive</option>
<option value="
eucjpms-">eucjpms - (UJISforWindowsJapanese)</option>
<option value="
eucjpms_bin-eucjpms">eucjpms_bin - Giapponese,Binario</option>
<option value="
eucjpms_japanese_ci-eucjpms">eucjpms_japanese_ci - Giapponese,case-insensitive</option>
<option value="
euckr-">euckr - (EUC-KRKorean)</option>
<option value="
euckr_bin-euckr">euckr_bin - Coreano,Binario</option>
<option value="
euckr_korean_ci-euckr">euckr_korean_ci - Coreano,case-insensitive</option>
<option value="
gb2312-">gb2312 - (GB2312SimplifiedChinese)</option>
<option value="
gb2312_bin-gb2312">gb2312_bin - CineseSemplificato,Binario</option>
<option value="
gb2312_chinese_ci-gb2312">gb2312_chinese_ci - CineseSemplificato,case-insensitive</option>
<option value="
gbk-">gbk - (GBKSimplifiedChinese)</option>
<option value="
gbk_bin-gbk">gbk_bin - CineseSemplificato,Binario</option>
<option value="
gbk_chinese_ci-gbk">gbk_chinese_ci - CineseSemplificato,case-insensitive</option>
<option value="
geostd8-">geostd8 - (GEOSTD8Georgian)</option>
<option value="
geostd8_bin-geostd8">geostd8_bin - Georgiano,Binario</option>
<option value="
geostd8_general_ci-geostd8">geostd8_general_ci - Georgiano,case-insensitive</option>
<option value="
greek-">greek - (ISO8859-7Greek)</option>
<option value="
greek_bin-greek">greek_bin - Greco,Binario</option>
<option value="
greek_general_ci-greek">greek_general_ci - Greco,case-insensitive</option>
<option value="
hebrew-">hebrew - (ISO8859-8Hebrew)</option>
<option value="
hebrew_bin-hebrew">hebrew_bin - Ebreo,Binario</option>
<option value="
hebrew_general_ci-hebrew">hebrew_general_ci - Ebreo,case-insensitive</option>
<option value="
hp8-">hp8 - (HPWestEuropean)</option>
<option value="
hp8_bin-hp8">hp8_bin - EuropeoOccidentale(multilingua),Binario</option>
<option value="
hp8_english_ci-hp8">hp8_english_ci - Inglese,case-insensitive</option>
<option value="
keybcs2-hp8">keybcs2 - (DOSKamenickyCzech-Slovak)</option>
<option value="
keybcs2_bin-hp8">keybcs2_bin - Ceco-Slovacco,Binario</option>
<option value="
keybcs2_general_ci-hp8">keybcs2_general_ci - Ceco-Slovacco,case-insensitive</option>
<option value="
koi8r-">koi8r - (KOI8-RRelcomRussian)</option>
<option value="
koi8r_bin-koi8r">koi8r_bin - Russo,Binario</option>
<option value="
koi8r_general_ci-koi8r">koi8r_general_ci - Russo,case-insensitive</option>
<option value="
koi8u-">koi8u - (KOI8-UUkrainian)</option>
<option value="
koi8u_bin-koi8u">koi8u_bin - Ucraino,Binario</option>
<option value="
koi8u_general_ci-koi8u">koi8u_general_ci - Ucraino,case-insensitive</option>
<option value="
latin1-">latin1 - (cp1252WestEuropean)</option>
<option value="
latin1_bin-latin1">latin1_bin - EuropeoOccidentale(multilingua),Binario</option>
<option value="
latin1_danish_ci-latin1">latin1_danish_ci - Danese,case-insensitive</option>
<option value="
latin1_general_ci-latin1">latin1_general_ci - EuropeoOccidentale(multilingua),case-insensitive</option>
<option value="
latin1_general_cs-latin1">latin1_general_cs - EuropeoOccidentale(multilingua),case-sensitive</option>
<option value="
latin1_german1_ci-latin1">latin1_german1_ci - Tedesco(dizionario),case-insensitive</option>
<option value="
latin1_german2_ci-latin1">latin1_german2_ci - Tedesco(rubrica),case-insensitive</option>
<option value="
latin1_spanish_ci-latin1">latin1_spanish_ci - Spagnolo,case-insensitive</option>
<option value="
latin1_swedish_ci-latin1">latin1_swedish_ci - Svedese,case-insensitive</option>
<option value="
latin2-">latin2 - (ISO8859-2CentralEuropean)</option>
<option value="
latin2_bin-latin2">latin2_bin - EuropeoCentrale(multilingua),Binario</option>
<option value="
latin2_croatian_ci-latin2">latin2_croatian_ci - Croato,case-insensitive</option>
<option value="
latin2_czech_cs-latin2">latin2_czech_cs - Ceco,case-sensitive</option>
<option value="
latin2_general_ci-latin2">latin2_general_ci - EuropeoCentrale(multilingua),case-insensitive</option>
<option value="
latin2_hungarian_ci-latin2">latin2_hungarian_ci - Ungherese,case-insensitive</option>
<option value="
latin5-">latin5 - (ISO8859-9Turkish)</option>
<option value="
latin5_bin-latin5">latin5_bin - Turco,Binario</option>
<option value="
latin5_turkish_ci-latin5">latin5_turkish_ci - Turco,case-insensitive</option>
<option value="
latin7-">latin7 - (ISO8859-13Baltic)</option>
<option value="
latin7_bin-latin7">latin7_bin - Baltico(multilingua),Binario</option>
<option value="
latin7_estonian_cs-latin7">latin7_estonian_cs - Estone,case-sensitive</option>
<option value="
latin7_general_ci-latin7">latin7_general_ci - Baltico(multilingua),case-insensitive</option>
<option value="
latin7_general_cs-latin7">latin7_general_cs - Baltico(multilingua),case-sensitive</option>
<option value="
macce-">macce - (MacCentralEuropean)</option>
<option value="
macce_bin-macce_bin">macce_bin - EuropeoCentrale(multilingua),Binario</option>
<option value="
macce_general_ci-macce_bin">macce_general_ci - EuropeoCentrale(multilingua),case-insensitive</option>
<option value="
macroman-">macroman - (MacWestEuropean)</option>
<option value="
macroman_bin-macroman">macroman_bin - EuropeoOccidentale(multilingua),Binario</option>
<option value="
macroman_general_ci-macroman">macroman_general_ci - EuropeoOccidentale(multilingua),case-insensitive</option>
<option value="
sjis-">sjis - (Shift-JISJapanese)</option>
<option value="
sjis_bin-sjis">sjis_bin - Giapponese,Binario</option>
<option value="
sjis_japanese_ci-sjis">sjis_japanese_ci - Giapponese,case-insensitive</option>
<option value="
swe7-">swe7 - (7bitSwedish)</option>
<option value="
swe7_bin-swe7">swe7_bin - Svedese,Binario</option>
<option value="
swe7_swedish_ci-swe7">swe7_swedish_ci - Svedese,case-insensitive</option>
<option value="
tis620-">tis620 - (TIS620Thai)</option>
<option value="
tis620_bin-tis620">tis620_bin - Thai,Binario</option>
<option value="
tis620_thai_ci-tis620">tis620_thai_ci - Thai,case-insensitive</option>
<option value="
ucs2-">ucs2 - (UCS-2Unicode)</option>
<option value="
ucs2_bin-ucs2">ucs2_bin - Unicode(multilingua),Binario</option>
<option value="
ucs2_czech_ci-ucs2">ucs2_czech_ci - Ceco,case-insensitive</option>
<option value="
ucs2_danish_ci-ucs2">ucs2_danish_ci - Danese,case-insensitive</option>
<option value="
ucs2_esperanto_ci-ucs2">ucs2_esperanto_ci - Esperanto,case-insensitive</option>
<option value="
ucs2_estonian_ci-ucs2">ucs2_estonian_ci - Estone,case-insensitive</option>
<option value="
ucs2_general_ci-ucs2">ucs2_general_ci - Unicode(multilingua),case-insensitive</option>
<option value="
ucs2_hungarian_ci-ucs2">ucs2_hungarian_ci - Ungherese,case-insensitive</option>
<option value="
ucs2_icelandic_ci-ucs2">ucs2_icelandic_ci - Islandese,case-insensitive</option>
<option value="
ucs2_latvian_ci-ucs2">ucs2_latvian_ci - Lituano,case-insensitive</option>
<option value="
ucs2_lithuanian_ci-ucs2">ucs2_lithuanian_ci - Lituano,case-insensitive</option>
<option value="
ucs2_persian_ci-ucs2">ucs2_persian_ci - Persiano,case-insensitive</option>
<option value="
ucs2_polish_ci-ucs2">ucs2_polish_ci - Polacco,case-insensitive</option>
<option value="
ucs2_roman_ci-ucs2">ucs2_roman_ci - EuropeoOccidentale,case-insensitive</option>
<option value="
ucs2_romanian_ci-ucs2">ucs2_romanian_ci - Rumeno,case-insensitive</option>
<option value="
ucs2_slovak_ci-ucs2">ucs2_slovak_ci - Slovacco,case-insensitive</option>
<option value="
ucs2_slovenian_ci-ucs2">ucs2_slovenian_ci - Sloveno,case-insensitive</option>
<option value="
ucs2_spanish_ci-ucs2">ucs2_spanish_ci - Spagnolo,case-insensitive</option>
<option value="
ucs2_spanish2_ci-ucs2">ucs2_spanish2_ci - Spagnolotradizionale,case-insensitive</option>
<option value="
ucs2_swedish_ci-ucs2">ucs2_swedish_ci - Svedese,case-insensitive</option>
<option value="
ucs2_turkish_ci-ucs2">ucs2_turkish_ci - Turco,case-insensitive</option>
<option value="
ucs2_unicode_ci-ucs2">ucs2_unicode_ci - Unicode(multilingua),case-insensitive</option>
<option value="
ujis-">ujis - (EUC-JPJapanese)</option>
<option value="
ujis_bin-ujis">ujis_bin - Giapponese,Binario</option>
<option value="
ujis_japanese_ci-ujis">ujis_japanese_ci - Giapponese,case-insensitive</option>
<option value="
utf8-">utf8 - (UTF-8Unicode)</option>
<option value="
utf8_bin-utf8">utf8_bin - Unicode(multilingua),Binario</option>
<option value="
utf8_czech_ci-utf8">utf8_czech_ci - Ceco,case-insensitive</option>
<option value="
utf8_danish_ci-utf8">utf8_danish_ci - Danese,case-insensitive</option>
<option value="
utf8_esperanto_ci-utf8">utf8_esperanto_ci - Esperanto,case-insensitive</option>
<option value="
utf8_estonian_ci-utf8">utf8_estonian_ci - Estone,case-insensitive</option>
<option value="
utf8_general_ci-utf8">utf8_general_ci - Unicode(multilingua),case-insensitive</option>
<option value="
utf8_hungarian_ci-utf8">utf8_hungarian_ci - Ungherese,case-insensitive</option>
<option value="
utf8_icelandic_ci-utf8">utf8_icelandic_ci - Islandese,case-insensitive</option>
<option value="
utf8_latvian_ci-utf8">utf8_latvian_ci - Lituano,case-insensitive</option>
<option value="
utf8_lithuanian_ci-utf8">utf8_lithuanian_ci - Lituano,case-insensitive</option>
<option value="
utf8_persian_ci-utf8">utf8_persian_ci - Persiano,case-insensitive</option>
<option value="
utf8_polish_ci-utf8">utf8_polish_ci - Polacco,case-insensitive</option>
<option value="
utf8_roman_ci-utf8">utf8_roman_ci - EuropeoOccidentale,case-insensitive</option>
<option value="
utf8_romanian_ci-utf8">utf8_romanian_ci - Rumeno,case-insensitive</option>
<option value="
utf8_slovak_ci-utf8">utf8_slovak_ci - Slovacco,case-insensitive</option>
<option value="
utf8_slovenian_ci-utf8">utf8_slovenian_ci - Sloveno,case-insensitive</option>
<option value="
utf8_spanish_ci-utf8">utf8_spanish_ci - Spagnolo,case-insensitive</option>
<option value="
utf8_spanish2_ci-utf8">utf8_spanish2_ci - Spagnolotradizionale,case-insensitive</option>
<option value="
utf8_swedish_ci-utf8">utf8_swedish_ci - Svedese,case-insensitive</option>
<option value="
utf8_turkish_ci-utf8">utf8_turkish_ci - Turco,case-insensitive</option>
<option value="
utf8_unicode_ci-utf8">utf8_unicode_ci - Unicode(multilingua),case-insensitive</option>
</select>
<br>
         <br>
           <input type="
hidden" name="opt" value="1" maxlength="1">
           <input type="
submit" name="perform" value="Crea codice SQL">&nbsp;
           <input type="
button" value="Reimposta" onclick="location.href='GeneratoreQueryCharactersetMysql.php'">
          </form></p>"
;
if (isset(
$_POST['opt']) AND isset($_POST['dbname'])) {
       
$dbi = mysql_connect($hostname, $dbuname, $dbpass);
        
mysql_select_db($dbname, $dbi);
       
$dbname = $_POST['dbname'];
       
$k=0;
       
$charcol = $_POST['characterset-collate'];
       
$chset = explode("-", $charcol);
       
$characterset = $chset[0]; //COLLATE latin1_general_ci
       
$collate = $chset[1];  // CHARACTER SET latin1
        //ALTER TABLE `$nometabella[0]` DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci;
       
if ($collate!="") {
              echo
"<p>ALTER DATABASE `$dbname` DEFAULT CHARACTER SET ".$chset[1]." COLLATE ".$chset[0].";<br>";
               
$risultato = mysql_list_tables($dbname);
                echo
"USE $dbname;<br>";
                while (
$nometabella = mysql_fetch_row($risultato)) {
                   echo
"ALTER TABLE `$nometabella[0]` DEFAULT CHARACTER SET ".$chset[1]." COLLATE ".$chset[0].";<br>";
                      
//cambia il carattere di tutti i campi similari a char e text
                      
$sql = mysql_query("SELECT * FROM ".$nometabella[0]."", $dbi)  or die("Query non valida FIELD: " . mysql_error());
                      
$querytab = mysql_db_query($dbname, "SHOW FIELDS FROM $nometabella[0]") or die("Query non valida SHOW" . mysql_error());
                       
$i = 0;
                        while(
$row = mysql_fetch_array($querytab)) {
                                if (
eregi("char",$row["Type"]) OR eregi("text",$row["Type"])) {
                                    echo
"ALTER TABLE `$nometabella[0]` CHANGE `$row[Field]` `$row[Field]` $row[Type] CHARACTER SET ".$chset[1]." COLLATE ".$chset[0].";<br>";
                                }
                        }
                  }
                  echo
"</p>";
                 
$k++;
        } else {
           echo
"<p align="center">Selezionare il collate solo voci senza (parentesi)</p>";
        }
}
?>

<p>&nbsp;</p>
</body>
</html>

Spero che vi sia utile!

Argomenti: