Script para cambiar juego de caracteres en la base de datos MySQL

Si tienes problemas con los juegos de caracteres, ya sea porque no coincidan en todas las tablas o porque el formato que usas no es que el necesitabas. tendrías que ir de tabla en tabla y editarla para que tenga el mismo formato (Juego de caracteres).

Aquí te doy un script que puede facilitar esa tarea,

Advertencia: antes de ejecutar el script, es sumamente recomendable hacer un backup

<?php
    $juegocaracteres= "latin1"; //juego de caracteres
    $collate = "latin1_general_ci"; //collate
    $nombre_base_datos = "NOMBRE"; //nombre de la base de datos a modificar
    $db = mysql_connect('localhost','user','password'); //datos de conexión MySQL

    if(!$db) echo "Error al conectar"; 

    mysql_select_db($nombre_base_datos); //Seleccionar base de datos
    mysql_query('ALTER DATABASE CHARACTER SET $juegocaracteres'); //Cambiando el juego a nivel base de datos

    $result=mysql_query('show tables'); //obtener todas las tablas de la base de datos

    while($tables = mysql_fetch_array($result))
    {
        foreach ($tables as $key => $value)
        {
            mysql_query("ALTER TABLE $value CONVERT TO CHARACTER SET $juegocaracteres COLLATE $collate"); //cambiando el juego y el collate en cada tabla
        }
    }

    echo "Cambio de juego de caracteres correcto a $juegocaracteres collate $collate"; //Mensaje si todo se realizó correctamente
?>

Este script está configurado para cambiar a juego de caracteres latin1 usando el collase general

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *