Problemes de Collation a MySql

Tot sovint l’ús de diferent collation entre la connexió i la configuració de la base de dades i/o les taules causen un error de collation.

A partir de MySql 4.1.8 podem comprovar quin collation s’està fent servir amb una sentència com aquesta:

SELECT COLLATION(USER()), COLLATION('@');

Podem definir el collation amb el que volem que es defineixin les variables amb SET NAMES:

SET CHARACTER SET 'UTF8';
SET NAMES 'utf8' COLLATE 'utf8_general_ci';

A partir d’aquí les variables de text ja no donaran conflicte amb la base de dades ut8_general_ci puix que hem indicat que es treballi amb aquest format.

Per exemple:

SET @s_email='email@codic.cat';
SELECT * FROM correus WHERE correu_usuari=@s_email;

Ja no donaria un error com:
#1267 – Illegal mix of collations (latin1_swedish_ci,IMPLICIT)
and (utf8_general_ci,COERCIBLE) for operation ‘=’

Més informació: http://dev.mysql.com/doc/refman/4.1/en/charset-collation-charset.html

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Tags:

1.809 visualitzacions - versió en PDF

Comments are closed.