false, PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
$sql = "use $dbname";
$dbi->exec($sql);
}
catch(PDOException $e)
{
die( $sql . "
" . $e->getMessage());
}
*/
###############
function aggiorna($sql,$dbi,$sql2,$num){
$ret=0;
try{
$res = $dbi->prepare("$sql");
$res->execute();
$ret= 1;
}
catch(PDOException $e)
{
$ret=0;
echo "
- Aggiornamento Fallito: $sql";
return $ret;
}
if("$sql2"!=""){
try{
$res = $dbi->prepare("$sql2");
$res->execute();
$ret=2;
}
catch(PDOException $e)
{
$ret=0;
echo "
- Aggiornamento Fallito: $sql2";
return $ret;
}
}
echo "
- Aggiornamento eseguito correttamente";
return $ret;
}
function aggiorna_index($tab,$ind,$dbi,$sql2,$num){
$ret=0;
# $conn->getAttribute( constant( "PDO::ATTR_$val" ) )
$sqltest="SHOW INDEX FROM `$tab` WHERE KEY_NAME = '$ind'";
$res = $dbi->prepare("$sqltest");
$res->execute();
if($res->rowCount()) {
if($ind=='PRIMARY')
$sql="ALTER TABLE `$tab` DROP PRIMARY KEY , $sql2 ";
else
$sql="ALTER TABLE `$tab` DROP INDEX `$ind`";
try{
$res = $dbi->prepare("$sql");
$res->execute();
$ret= 1;
}
catch(PDOException $e)
{
$ret=0;
echo "
- Tabella: $tab - Indice: $ind - Aggiornamento Fallito: $sql";
return $ret;
}
}
if("$sql2"!="" and $ind!='PRIMARY'){
try{
$res = $dbi->prepare("$sql2");
$res->execute();
$ret=2;
}
catch(PDOException $e)
{
$ret=0;
echo "
- Tabella: $tab - Indice: $ind - Aggiornamento Fallito: $sql2";
return $ret;
}
}
echo "
- Tabella: $tab - Indice: $ind - Index aggiornato";
return $ret;
}
function controllo($tabella,$campo,$num)
{
global $dbi, $dbname;
$sql="SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$dbname' AND TABLE_NAME = '$tabella'";
$res = $dbi->prepare("$sql");
$res->execute();
if($res->rowCount() and $campo=='') return 1;
while(list($nome)=$res->fetch(PDO::FETCH_NUM)) {if($nome==$campo) { echo "
".$num.") Il campo: $campo è presente nella tabella: $tabella"; return 1;}}
if($campo) echo "
$num) Il campo: $campo non è presente nella tabella: $tabella";
return 0;
}
$num=0;
if(controllo($prefix.'_authors','admincomune',++$num))
{
$sql="UPDATE `".$prefix."_authors` SET `adminop` = '1', `adminsuper` = '0',`admincomune` = '0' WHERE `".$prefix."_authors`.`aid` != 'admin' AND `".$prefix."_authors`.`adminsuper` != '1'";
$ret=aggiorna($sql,$dbi,'',$num);
$sql="UPDATE `".$prefix."_authors` SET `adminop` = '0', `adminsuper` = '0',`admincomune` = '1' WHERE `".$prefix."_authors`.`aid` = 'admin'";
$ret=aggiorna($sql,$dbi,'',$num);
$sql="UPDATE `".$prefix."_authors` SET `adminop` = '0', `adminsuper` = '1',`admincomune` = '0' WHERE `".$prefix."_authors`.`aid` = 'suser' or `".$prefix."_authors`.`adminsuper` = '1'";
$ret=aggiorna($sql,$dbi,'',$num);
echo "
La tabella dei permessi è stata aggiornata
";
}else echo "
- La tabella ".$prefix."_authors non richiede questo aggiornamento
";
if(!controllo($prefix.'_config','versione',++$num))
{
$sql="alter table `".$prefix."_config` change column `Versione` `versione` int(3)";
$ret=aggiorna($sql,$dbi,'',$num);
} else echo "
- La tabella ".$prefix."_config non richiede questo aggiornamento
";
if(controllo($prefix.'_config','secret',++$num))
{
$sql="alter table `".$prefix."_config` DROP `secret`";
$ret=aggiorna($sql,$dbi,'',$num);
} else echo "
- La tabella ".$prefix."_config non richiede questo aggiornamento
";
if(controllo($prefix.'_ele_voti_parziale','data',++$num))
{
$sql="ALTER TABLE `".$prefix."_ele_voti_parziale` CHANGE `data` `data` DATE NOT NULL DEFAULT '1900-01-01'";
$ret=aggiorna($sql,$dbi,'',$num);
echo "
";
}
++$num;
$sql="ALTER TABLE `".$prefix."_ele_come` CHANGE `title` `title` VARCHAR(150) NOT NULL DEFAULT ' ', CHANGE `preamble` `preamble` TEXT, CHANGE `content` `content` TEXT, CHANGE `editimage` `editimage` VARCHAR(100) NOT NULL DEFAULT ' '";
$ret=aggiorna($sql,$dbi,'',$num);
echo "
";
if(!$ret) echo "Il tuo sistema non necessita di questo aggiornamento, questo avviso di errore va ignorato
";
++$num;
$sql="ALTER TABLE `".$prefix."_ele_link` CHANGE `title` `title` VARCHAR(150) NOT NULL DEFAULT ' ', CHANGE `preamble` `preamble` TEXT, CHANGE `content` `content` TEXT, CHANGE `editimage` `editimage` VARCHAR(100) NOT NULL DEFAULT ' '";
$ret=aggiorna($sql,$dbi,'',$num);
echo "
";
if(!$ret) echo "Il tuo sistema non necessita di questo aggiornamento, questo avviso di errore va ignorato
";
++$num;
$sql="ALTER TABLE `".$prefix."_ele_servizi` CHANGE `title` `title` VARCHAR(150) NOT NULL DEFAULT ' ', CHANGE `preamble` `preamble` TEXT, CHANGE `content` `content` TEXT, CHANGE `editimage` `editimage` VARCHAR(100) NOT NULL DEFAULT ' '";
$ret=aggiorna($sql,$dbi,'',$num);
echo "
";
if(!$ret) echo "Il tuo sistema non necessita di questo aggiornamento, questo avviso di errore va ignorato
";
if(controllo($prefix.'_ele_rilaff','data',++$num))
{
$sql="ALTER TABLE `".$prefix."_ele_rilaff` CHANGE `data` `data` DATE NOT NULL DEFAULT '1900-01-01'";
$ret=aggiorna($sql,$dbi,'',$num);
echo "
";
}
if(!controllo($prefix.'_ele_gruppo','num_circ',++$num))
{
$sql="ALTER TABLE `".$prefix."_ele_gruppo` ADD `num_circ` INT(2) UNSIGNED NOT NULL AFTER `id_circ`";
$ret=aggiorna($sql,$dbi,'',$num);
} else echo "
- La tabella ".$prefix."_ele_gruppo non richiede questo aggiornamento
";
if(!controllo($prefix.'_ele_voti_gruppo','num_gruppo',++$num))
{
$sql="ALTER TABLE `".$prefix."_ele_voti_gruppo` ADD `num_gruppo` INT(2) UNSIGNED NOT NULL AFTER `id_sez`";
$ret=aggiorna($sql,$dbi,'',$num);
} else echo "
- La tabella ".$prefix."_ele_gruppo non richiede questo aggiornamento
";
if(!controllo($prefix.'_ele_lista','num_gruppo',++$num))
{
$sql="ALTER TABLE `".$prefix."_ele_lista` ADD `num_gruppo` INT(2) UNSIGNED NOT NULL AFTER `id_gruppo`";
$sql2="update `".$prefix."_ele_lista` as t1 set t1.num_gruppo=(select t2.num_gruppo from `".$prefix."_ele_gruppo` as t2 where t2.id_gruppo=t1.id_gruppo) where t1.num_gruppo=0 and (select t2.num_gruppo from `".$prefix."_ele_gruppo` as t2 where t2.id_gruppo=t1.id_gruppo) is not null";
$ret=aggiorna($sql,$dbi,$sql2,$num);
}else{
$sql="update `".$prefix."_ele_lista` as t1 set t1.num_gruppo=(select t2.num_gruppo from `".$prefix."_ele_gruppo` as t2 where t2.id_gruppo=t1.id_gruppo) where t1.num_gruppo=0 and (select t2.num_gruppo from `".$prefix."_ele_gruppo` as t2 where t2.id_gruppo=t1.id_gruppo) is not null";
$ret=aggiorna($sql,$dbi,'',$num);
echo "
- La tabella ".$prefix."_ele_lista non richiede questo aggiornamento
";
}
if(!controllo($prefix.'_ele_lista','num_circ',++$num))
{
$sql="ALTER TABLE `".$prefix."_ele_lista` ADD `num_circ` INT(2) UNSIGNED NOT NULL AFTER `id_circ`";
$ret=aggiorna($sql,$dbi,'',$num);
}else echo "
- La tabella ".$prefix."_ele_lista non richiede questo aggiornamento
";
if(!controllo($prefix.'_ele_operatori','id_circ',++$num))
{
$sql="ALTER TABLE `".$prefix."_ele_operatori` ADD `id_circ` INT(11) NOT NULL DEFAULT 0 AFTER `aid`";
$ret=aggiorna($sql,$dbi,'',$num);
}else echo "
- La tabella ".$prefix."_ele_operatori non richiede questo aggiornamento
";
if(!controllo($prefix.'_ele_operatori','id_sez',++$num))
{
$sql="ALTER TABLE `".$prefix."_ele_operatori` ADD `id_sez` INT(11) NOT NULL DEFAULT 0 AFTER `id_circ`";
$ret=aggiorna($sql,$dbi,'',$num);
}else echo "
- La tabella ".$prefix."_ele_operatori non richiede questo aggiornamento
";
if(!controllo($prefix.'_ele_voti_lista','num_lista',++$num))
{
$sql="ALTER TABLE `".$prefix."_ele_voti_lista` ADD `num_lista` INT(2) UNSIGNED NOT NULL AFTER `id_sez`";
$ret=aggiorna($sql,$dbi,'',$num);
}else echo "
- La tabella ".$prefix."_ele_voti_lista non richiede questo aggiornamento
";
if(!controllo($prefix.'_ele_voti_ref','num_gruppo',++$num))
{
$sql="ALTER TABLE `".$prefix."_ele_voti_ref` ADD `num_gruppo` INT(2) UNSIGNED NOT NULL AFTER `id_sez`";
$ret=aggiorna($sql,$dbi,'',$num);
}else echo "
- La tabella ".$prefix."_ele_voti_ref non richiede questo aggiornamento
";
if(!controllo($prefix.'_ele_voti_candidati','num_cand',++$num))
{
$sql="ALTER TABLE `".$prefix."_ele_voti_candidati` ADD `num_cand` INT(2) UNSIGNED NOT NULL AFTER `id_sez`";
$ret=aggiorna($sql,$dbi,'',$num);
}else echo "
- La tabella ".$prefix."_ele_voti_candidati non richiede questo aggiornamento
";
if(!controllo($prefix.'_ele_candidati','num_lista',++$num))
{
$sql="ALTER TABLE `".$prefix."_ele_candidati` ADD `num_lista` INT(2) UNSIGNED NOT NULL AFTER `id_lista`";
$ret=aggiorna($sql,$dbi,'',$num);
}else echo "
- La tabella ".$prefix."_ele_candidati non richiede questo aggiornamento
";
if(!controllo($prefix.'_ele_sezioni','colore',++$num))
{
$sql="ALTER TABLE `".$prefix."_ele_sezioni` ADD `colore` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '#FAFAD2' AFTER `solo_lista`";
$ret=aggiorna($sql,$dbi,'',$num);
}else{
$sql="ALTER TABLE `".$prefix."_ele_sezioni` CHANGE `colore` `colore` VARCHAR(50) DEFAULT '#FAFAD2'";
$ret=aggiorna($sql,$dbi,'',$num);
} echo "
";
echo "
Aggiornamento per nuovo sistema dei controlli di congruità";
if(!controllo($prefix.'_ele_controlli','id_cons',++$num))
{
$sql="CREATE TABLE if not exists`".$prefix."_ele_controlli` ( `id_cons` INT(11) NOT NULL , `id_sez` INT(11) NOT NULL , `tipo` VARCHAR(10) NOT NULL , `id` INT(11) NOT NULL , INDEX `sezione` (`id_sez`)) ENGINE = MyISAM";
echo "
".$num.") Creazione tabella dei controlli: ";
$ret=aggiorna($sql,$dbi,'',$num);
}else echo "
- La tabella ".$prefix."_ele_controlli non richiede questo aggiornamento
";
echo "
".++$num.") Eliminazione della vecchia tabella dei controlli: ";
if(controllo($prefix.'_ele_controllisez','',$num))
{
$sql="DROP TABLE if exists `".$prefix."_ele_controllisez`";
$ret=aggiorna($sql,$dbi,'',$num);
} else echo "
- Tabella non presente
";
echo "
".++$num.") Aggiornamento tabella ".$prefix."_ele_voti_gruppo";
$sql="update `".$prefix."_ele_voti_gruppo` as t1 left join `".$prefix."_ele_gruppo` as t2 on t1.id_gruppo=t2.id_gruppo set t1.num_gruppo=t2.num_gruppo;";
$ret=aggiorna($sql,$dbi,'',$num);
echo "
".++$num.") Aggiornamento dei valori di default: ".$prefix."_ele_voti_lista";
$sql="ALTER TABLE `".$prefix."_ele_voti_lista` CHANGE `num_lista` `num_lista` INT(2) UNSIGNED NULL DEFAULT '0';";
$ret=aggiorna($sql,$dbi,'',$num);
echo "
".++$num.") Aggiornamento tabella ".$prefix."_ele_voti_lista";
$sql="update `".$prefix."_ele_voti_lista` as t1 left join `".$prefix."_ele_lista` as t2 on t1.id_lista=t2.id_lista set t1.num_lista=t2.num_lista;";
$ret=aggiorna($sql,$dbi,'',$num);
##############################################
echo "
".++$num.") Aggiornamento dei valori di default: ".$prefix."_ele_gruppo";
$sql="ALTER TABLE `".$prefix."_ele_gruppo` CHANGE `num_circ` `num_circ` INT(2) UNSIGNED NOT NULL DEFAULT '1';";
$ret=aggiorna($sql,$dbi,'',$num);
$sql="ALTER TABLE `".$prefix."_authors` CHANGE `adminsuper` `adminsuper` TINYINT(2) NOT NULL DEFAULT '0';";
$ret=aggiorna($sql,$dbi,'',$num);
$sql="ALTER TABLE `".$prefix."_ele_lista` CHANGE `num_gruppo` `num_gruppo` INT(2) UNSIGNED NOT NULL DEFAULT '0';";
$ret=aggiorna($sql,$dbi,'',$num);
$sql="ALTER TABLE `".$prefix."_ele_lista` CHANGE `num_circ` `num_circ` INT(2) UNSIGNED NOT NULL DEFAULT '1';";
$ret=aggiorna($sql,$dbi,'',$num);
echo "
".++$num.") Aggiornamento della tabella _ele_conf per la nuova gestione della L.R. Sicilia";
$sql="UPDATE `".$prefix."_ele_conf` SET `inffisso` = '1' WHERE `id_conf` = 4;";
$ret=aggiorna($sql,$dbi,'',$num);
echo "
".++$num.") Ricostruzione della tabella ".$prefix."_ele_fasce`";
$sql="DROP TABLE `".$prefix."_ele_fasce`";
$ret=aggiorna($sql,$dbi,'',$num);
$sql="CREATE TABLE `".$prefix."_ele_fasce` (
`id_fascia` int(2) NOT NULL,
`abitanti` int(11) NOT NULL,
`seggi` int(4) NOT NULL,
`id_conf` int(11) DEFAULT 1
) ENGINE=MyISAM DEFAULT CHARSET 'utf8';";
$sql2="INSERT INTO `".$prefix."_ele_fasce` (`id_fascia`, `abitanti`, `seggi`, `id_conf`) VALUES
(1, 3000, 12, 1),
(2, 10000, 16, 1),
(3, 15000, 20, 1),
(4, 30000, 20, 1),
(5, 100000, 30, 1),
(6, 250000, 40, 1),
(7, 500000, 46, 1),
(8, 1000000, 50, 1),
(9, 100000000, 60, 1),
(1, 3000, 12, 2),
(2, 10000, 16, 2),
(3, 15000, 20, 2),
(4, 30000, 20, 2),
(5, 100000, 30, 2),
(6, 250000, 40, 2),
(7, 500000, 46, 2),
(8, 1000000, 50, 2),
(9, 100000000, 60, 2),
(1, 3000, 9, 3),
(2, 5000, 9, 3),
(4, 15000, 16, 3),
(3, 10000, 12, 3),
(5, 30000, 16, 3),
(6, 100000, 24, 3),
(7, 250000, 32, 3),
(8, 500000, 36, 3),
(9, 1000000, 40, 3),
(10, 100000000, 48, 3),
(1, 3000, 6, 4),
(2, 5000, 7, 4),
(3, 10000, 12, 4),
(4, 15000, 16, 4),
(5, 30000, 16, 4),
(6, 100000, 24, 4),
(7, 250000, 32, 4),
(8, 500000, 36, 4),
(9, 1000000, 40, 4),
(10, 100000000, 48, 4),
(1, 3000, 9, 5),
(2, 5000, 9, 5),
(3, 10000, 12, 5),
(4, 15000, 16, 5),
(5, 30000, 16, 5),
(6, 100000, 24, 5),
(7, 250000, 32, 5),
(8, 500000, 36, 5),
(9, 1000000, 40, 5),
(10, 100000000, 48, 5),
(1, 3000, 6, 6),
(2, 5000, 7, 6),
(3, 10000, 10, 6),
(4, 15000, 16, 6),
(5, 30000, 16, 6),
(6, 100000, 24, 6),
(7, 250000, 32, 6),
(8, 500000, 36, 6),
(9, 1000000, 40, 6),
(10, 100000000, 48, 6),
(1, 3000, 10, 7),
(2, 10000, 12, 7),
(3, 15000, 16, 7),
(4, 30000, 16, 7),
(5, 100000, 24, 7),
(6, 250000, 32, 7),
(7, 500000, 36, 7),
(8, 1000000, 40, 7),
(9, 100000000, 48, 7);";
$ret=aggiorna($sql,$dbi,$sql2,$num);
#if(!$ret) echo "
".$num++.") Fallito: $sql"; else echo "
".$num++.") Aggiornato
";
$sql="ALTER TABLE `".$prefix."_ele_fasce`
ADD KEY `id_fascia` (`id_fascia`);";
$ret=aggiorna($sql,$dbi,'',$num);
#if(!$ret) echo "
".$num++.") Fallito: $sql"; else echo "
".$num++.") Aggiornato
";
#if(!$ret)
# echo "
".$num++.") Fallito: $sql";
#elseif ($ret==1)
# echo "
".$num++.") Index eliminato";
#else
# echo "
".$num++.") Index aggiunto";
#$sql="ALTER TABLE `".$prefix."_ele_voti_lista` DROP INDEX if exists `id_cons`";
echo "
".++$num.") Ricostruzione e aggioramento indici";
$tab=$prefix."_ele_voti_ref";
$ind="id_cons";
# $sql="ALTER TABLE `".$prefix."_ele_voti_ref` DROP INDEX `id_cons`; ";
$sql2="ALTER TABLE `".$prefix."_ele_voti_ref` ADD INDEX `id_cons` (`id_cons`, `id_gruppo`) USING BTREE";
$ret=aggiorna_index($tab, $ind,$dbi,$sql2,$num);
$tab=$prefix."_ele_sezioni";
$ind="id_cons";
$sql2="ALTER TABLE `".$prefix."_ele_sezioni` ADD UNIQUE `id_cons` (`id_cons`, `num_sez`) USING BTREE";
$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
$tab=$prefix."_ele_voti_lista";
$ind="id_cons";
$sql2="ALTER TABLE `".$prefix."_ele_voti_lista` ADD INDEX `id_cons` (`id_cons`, `id_sez`, `id_lista`) USING BTREE";
$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
$tab=$prefix."_ele_voti_gruppo";
$ind="id_cons";
#$sql="ALTER TABLE `".$prefix."_ele_voti_gruppo` DROP INDEX if exists `id_cons`";
$sql2="ALTER TABLE `".$prefix."_ele_voti_gruppo` ADD INDEX `id_cons` (`id_cons`, `id_sez`, `id_gruppo`) USING BTREE";
$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
$tab=$prefix."_ele_voti_candidati";
$ind="id_cons";
#$sql="ALTER TABLE `".$prefix."_ele_voti_candidati` DROP INDEX if exists `id_cons`";
$sql2="ALTER TABLE `".$prefix."_ele_voti_candidati` ADD INDEX `id_cons` (`id_cons`, `id_sez`, `id_cand`) USING BTREE";
$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
$tab=$prefix."_ele_lista";
$ind="id_cons";
#$sql="ALTER TABLE `".$prefix."_ele_lista` DROP INDEX if exists `id_cons`";
$sql2="ALTER TABLE `".$prefix."_ele_lista` ADD INDEX `id_cons` (`id_cons`, `id_gruppo`) USING BTREE";
$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
$tab=$prefix."_ele_lista";
$ind="PRIMARY";
#$sql="ALTER TABLE `".$prefix."_ele_lista` DROP INDEX if exists `PRIMARY`";
$sql2="ADD PRIMARY KEY (`id_lista`) USING BTREE";
$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
$tab=$prefix."_ele_gruppo";
$ind="id_cons";
#$sql="ALTER TABLE `".$prefix."_ele_gruppo` DROP INDEX if exists `id_cons`";
$sql2="ALTER TABLE `".$prefix."_ele_gruppo` ADD INDEX `id_cons` (`id_cons`, `id_circ`) USING BTREE";
$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
$tab=$prefix."_ele_gruppo";
$ind="PRIMARY";
#$sql="ALTER TABLE `".$prefix."_ele_gruppo` DROP INDEX if exists `PRIMARY`";
$sql2="ADD PRIMARY KEY (`id_gruppo`) USING BTREE";
$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
$tab=$prefix."_ele_candidati";
$ind="id_cons";
#$sql="ALTER TABLE `".$prefix."_ele_candidati` DROP INDEX if exists `id_cons`";
$sql2="ALTER TABLE `".$prefix."_ele_candidati` ADD INDEX `id_cons` (`id_cons`, `id_lista`) USING BTREE";
$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
$tab=$prefix."_ele_candidati";
$ind="PRIMARY";
#$sql="ALTER TABLE `".$prefix."_ele_candidati` DROP INDEX if exists `PRIMARY`";
$sql2="ADD PRIMARY KEY (`id_cand`) USING BTREE";
$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
$tab=$prefix."_ele_consultazione";
$ind="descrizione";
#$sql="ALTER TABLE `".$prefix."_ele_consultazione` DROP INDEX if exists `descrizione`";
$sql2="ALTER TABLE `".$prefix."_ele_consultazione` ADD UNIQUE `descrizione` (`descrizione`(100))";
$ret=aggiorna_index($tab,$ind,$dbi,$sql2,$num);
echo "
".++$num.") Modifica Charset del database";
if($newcs=='utf8') {
$cset='utf8';
$ccollate='utf8_general_ci';
$preset='latin1';
}else{
$cset='latin1';
$ccollate='latin1_swedish_ci';
$preset='utf8';
}
#$sql="ALTER DATABASE $dbname CHARACTER SET '$cset' COLLATE '$ccollate'";
#$res = $dbi->prepare("$sql");
#$res->execute();
$sql="SELECT table_name,column_name,column_default,column_type,is_nullable FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '$dbname' and (character_set_name='$preset' or collation_name like '$preset%')";
$res = $dbi->prepare("$sql");
$res->execute();
$tab='';
$agg=$res->rowCount();
while(list($nometab,$campo,$def,$tipo,$nul)=$res->fetch(PDO::FETCH_NUM)) {
if($tab!=$nometab){
$sql="alter table $nometab DEFAULT CHARSET=$cset COLLATE $ccollate";
try{
$res2 = $dbi->prepare("$sql");
$res2->execute();
}
catch(PDOException $e)
{
die( $sql . "
" . $e->getMessage());
}
$tab=$nometab; echo "
- Tabella: $nometab";
}
if($def!='') $default="DEFAULT '$def'"; else $default='';
if($nul=='NO') $nullable='NOT NULL'; else $nullable='NULL';
$sql="ALTER TABLE $nometab CHANGE $campo $campo $tipo CHARACTER SET '$cset' COLLATE '$ccollate' $nullable $default;";
try{
$res2 = $dbi->prepare("$sql");
$res2->execute();
}
catch(PDOException $e)
{
$default="DEFAULT $def";
$sql="ALTER TABLE $nometab CHANGE $campo $campo $tipo CHARACTER SET '$cset' COLLATE '$ccollate' $nullable $default;";
try{
$res2 = $dbi->prepare("$sql");
$res2->execute();
}
catch(PDOException $e)
{
die( $sql . "
" . $e->getMessage());
}
}
echo "
-- $campo";
}
$sql="SELECT table_name FROM INFORMATION_SCHEMA.tables WHERE TABLE_SCHEMA = '$dbname' and table_collation like '$preset%'";
$res = $dbi->prepare("$sql");
$res->execute();
$tab='';
if(!$agg) $agg=$res->rowCount();
while(list($nometab)=$res->fetch(PDO::FETCH_NUM)) {
$sql="alter table $nometab DEFAULT CHARSET=$cset COLLATE $ccollate";
try{
$res2 = $dbi->prepare("$sql");
$res2->execute();
}
catch(PDOException $e)
{
die( $sql . "
" . $e->getMessage());
}
echo "
- Tabella: $nometab";
}
if(!$agg) echo "
- Nessuna tabella da aggiornare";
echo "
";
?>