Corsi on-line

Convertire il SET di caratteri di più tabelle

In alcuni casi, per esempio quando si devono effettuare delle operazioni di trasferimento e di importazione, può presentarsi la necessità di convertire il SET di caratteri associato alle tabelle di un determinato database.

Una base di dati può essere composta anche da numerose tabelle, convertirle manualmente una per una potrebbe quindi essere un’operazione anche molto lunga e laboriosa; fortunatamente è possibile operare una conversione di massa sfruttando le potenzialità di PHP:

$sql = mysql_query("SHOW TABLES") or die (mysql_error());
while ($result = mysql_fetch_array($sql))
{
    foreach ($result as $key => $table)
    {
        mysql_query("ALTER TABLE " . $table . " CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci") or die (mysql_error());
        echo "Conversione: " . $key . " - " . $table . "<br/>\r\n";
    }
}

Il comando SHOW TABLES permette di rendere disponibili tutte le tabelle di un database come elementi di un array multidimensionale, questo può essere ciclato in modo da ricavare da ogni componente il relativo nome di tabella, un successivo ciclo permetterà di utilizzare ogni nome di tabella per un’istruzione di conversione del SET di caratteri basata sul comando ALTER TABLE.

Post correlati
I più letti del mese
Tematiche