Saltar al contenido

Cómo almacenar caracteres emoji en la base de datos MySQL

Solución:

1) Base de datos: cambie la intercalación predeterminada de la base de datos como utf8mb4.

2) Tabla: Cambie la clasificación de la tabla como CHARACTER SET utf8mb4 COLLATE utf8mb4_bin.

Consulta:

ALTER TABLE Tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin

3) Código:

INSERT INTO tablename (column1, column2, column3, column4, column5, column6, column7)
VALUES ('273', '3', 'Hdhdhdhhzhzhzzhjzj 我爱你 ❌', 49, 1, '2016-09-13 08:02:29', '2016-09-13 08:02:29')

4) Establecer utf8mb4 en conexión a la base de datos:

  $database_connection = new mysqli($server, $user, $password, $database_name); 
  $database_connection->set_charset('utf8mb4');

Paso 1, cambie el juego de caracteres predeterminado de su base de datos:

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

si la base de datos aún no se ha creado, créelo con las codificaciones correctas:

CREATE DATABASE database_name DEFAULT CHARSET = utf8mb4 DEFAULT COLLATE = utf8mb4_unicode_ci;

Paso 2, configure el juego de caracteres al crear la tabla:

CREATE TABLE IF NOT EXISTS table_name (
...
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci;

o alterar la mesa

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE table_name MODIFY field_name TEXT CHARSET utf8mb4;

Tanto las bases de datos como las tablas debe tener juego de caracteres utf8mb4 y colación utf8mb4_unicode_ci.

Al crear un nueva base de datos Deberías usar:

CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Si tienes un base de datos existente y desea agregar soporte:

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

También necesitas establecer el conjunto de caracteres y la colación correctos para tus mesas:

CREATE TABLE IF NOT EXISTS table_name (
    ...
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci;

o cámbialo si tienes tablas existentes con muchos datos:

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Tenga en cuenta que utf8_general_ci ya no es la mejor práctica recomendada. Consulte las preguntas y respuestas relacionadas:

¿Cuál es la diferencia entre utf8_general_ci y utf8_unicode_ci en Stack Overflow?

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

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