Datatables Tildes y Eñes Solución

Datatables Tildes y Eñes Solución

Datatables Tildes y eñes Solución. Cuando trabajamos en nuevos proyectos web es casi seguro que usaremos la librería Datatables para gestionar la información de nuestras tablas en un potente CRUD.

Generalmente, cuando integramos Datatables suelen presentarse el problema de las Tildes y Eñes (Caracteres especiales).Por ende, tenemos que darle solución de una manera inteligente.

Índice

    Datatables Tildes y eñes Solución

    La solución es gestionar las conexiones MySQL con UTF-8 ya sea que estemos usando PDO o MySQLi

    Primer ejemplo: Usando PDO

    A continuación, veremos una conexión simple usando la arquitectura PDO sin el cotejamiento UTF-8

    $pdo = new PDO(
    'mysql:host=mihost;dbname=mibd',
    'miusuario',
    'mipassword')
    );

    La solución es agregar UTF8 para que acepte tildes y eñes en nuestro CRUD Datatables de una manera sencilla en las variables de conexión, veamos un ejemplo.

    $pdo = new PDO(
    'mysql:host=mihost;dbname=mibd',
    'miusuario',
    'mipassword',
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
    );

    Explicación del script.- SI observan hemos aplicado UTF8 después de la contraseña de conexión MySQL usando una coma (array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8").

      ¿Cómo usar DataTables jQuery plugin?

    Otro punto importante es preparar nuestra tabla y columnas con utf8mb4 en la definición de su columna MySQL.
    Aquí hay un ejemplo de una definición de tabla "personas" MySQL con una columna que usa utfmb4:

    CREATE TABLE `personas` (
    `nombres` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

    Segundo ejemplo: Usando MySQLi

    Si estamos usando el tipo de conexión MySQLi también podemos asignar utf8 a nuestra conexión, veamos un ejemplo completo.

    <?php
    $mysqli = new mysqli('localhost', 'username', 'password', 'database');
    $mysqli->set_charset('utf8mb4');
    
    //Insercion de contenido con caracteres especiales
    $mysqli->query("INSERT INTO `personas` VALUES ('La cacería de Muñoz fue un éxito.')");
    $result = $mysqli->query("SELECT * FROM `personas` LIMIT 1");
    $persona = $result->fetch_object();
    
    if($persona)
        printf ("La nueva persona se llama: %s.\n", $person->name);
    ?>

    Cuando insertamos "La cacería de Muñoz fue un éxito." en la base de datos, el nombre se almacena tal cual, sin cambios. El script también imprime el nombre sin cambios: "La nueva persona se llama: La cacería de Muñoz fue un éxito.".

      Cambiar el idioma de DataTables: 2 formas

    Conclusiones y recomendaciones

    En algunas ocasiones la no declaración de UTF8 en nuestras conexiones MySQL suele mostrar error en Datatables y solo mostraría el tradicional mensaje de alerta cuando existe un error.

      ¿Cómo usar DataTables jQuery plugin?

    Es importante desde un inicio declarar que nuestra tabla trabajara en algún momento con caracteres especiales y es muy recomendado agregar el UTF8 en las conexiones MySQL.

    Espero que esto te ayude a resolver tu problema. Déjame saber si lo hace o no.

    Datatables Dropdown PDO, ServerSide, Responsiva

    ServerSide, Responsiva
    Opciones de exportacion Dropdown
    SweetAlert2
    Acciones (Editar, Agregar, Ver, Eliminar ) Dropdown

    Nestor Tapia

    Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

    Entradas Relacionadas

    Deja una respuesta

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