Eror Ñ Mysql

339 views
Skip to first unread message

Damian Fernandez

unread,
Jul 21, 2010, 1:31:17 PM7/21/10
to codeignit...@googlegroups.com
Hola gente les queria mostar este error que me tira la base de datos al relizar una busqueda con la letra Ñ

Ocurrió un Error con la Base de Datos

Error Number: 1267

Illegal mix of collations (latin1_bin,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'

SELECT * FROM (`v_persona_test`) WHERE `apellido` LIKE '%ñ%' ORDER BY `apellido` desc


La configuracion de la base es 


chart set latin1 (ISO 8859-1 West European)

collaction latin1_swedish_ci


y mi database.php


$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] ="utf8_general_ci";


Muchas Gracias Damian.


Jairo Ochoa

unread,
Jul 21, 2010, 1:38:14 PM7/21/10
to codeignit...@googlegroups.com
Tienes un mix de codificaciones.
Mi sugerencia es que los archivos php, el content type, la base de datos y las tablas sean UTF-8
Intenta convertir la base de datos, o bien exportala, bórrala y créala de nuevo.


--

Jairo Ochoa

Dropbox - Almacenamiento gratis / Free online backup
https://www.dropbox.com/referrals/NTg2Njc1MTg5



--
---
Para anular la suscripción a este grupo, envía un mensaje a
codeigniter-spa...@googlegroups.com
Para obtener más opciones, visita este grupo en
http://groups.google.com/group/codeigniter-spanish?hl=es.

Nahuel Bulian

unread,
Jul 21, 2010, 1:39:12 PM7/21/10
to codeignit...@googlegroups.com
Como primera medida probaria poner la misma "collations" en el S.O, base de datos, en la tabla y en CI, luego tiraria el query a ver si va bien, en mi caso uso UTF-8 para todo.

NB.


Damian Fernandez

unread,
Jul 21, 2010, 1:40:18 PM7/21/10
to codeignit...@googlegroups.com
entonces si utilizo Ñ y otro caracyeres me convienet crear la base como utf8 siemrpe?

Damian Fernandez

unread,
Jul 21, 2010, 1:54:03 PM7/21/10
to codeignit...@googlegroups.com
cambie todo a

utf8;
utf8_general_ci;

pero me sigue tirando este error

Error Number: 1267

Illegal mix of collations (latin1_bin,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation 'like'

SELECT * FROM (`v_persona_test`) WHERE `apellido` LIKE '%Ñ%' ORDER BY `apellido` desc

Damian Fernandez

unread,
Jul 21, 2010, 1:54:44 PM7/21/10
to codeignit...@googlegroups.com
Tendre que crear de nuevo la base?

Jairo Ochoa

unread,
Jul 21, 2010, 2:12:18 PM7/21/10
to codeignit...@googlegroups.com
tenías una mezcla del latín y latín sueco y por otro lado utf, ¿ahora como está cada cosa?

¿has visto la codificación de los archivos?, me refiero a los .php, y no hablo del content-type del html sino a como guardas los archivos

yo uso coda y lo defino así: http://cl.ly/8d98f75481c3635c2fae


 
--

Jairo Ochoa


Dropbox - Almacenamiento gratis / Free online backup
https://www.dropbox.com/referrals/NTg2Njc1MTg5



<<P431i7o>>

unread,
Jul 21, 2010, 2:20:51 PM7/21/10
to codeignit...@googlegroups.com
yo aprendi no hace mucho a usar todo iso-8859-1
me salen mas naturales las aplicaciones
por lo general el content type implicito que siempre usa apache es ese

entonces lo que hago es dejar la bd en latin1_spanish_ci como default collation y por lo general en cada tabla que creo


para solucionar tu problema puedes usar el phpMyAdmin
darle un export de datos mas estructura con borrado si es que existe
(que es el famoso, drop table if exists nombre_tabla)

y luego pegar en algun editor de texto
y reemplazar el collation que tiene ahi (tu export)
y reemplazar con el valor latin1_spanish_ci

y en el codeigniter poner el valor adecuado para iso-8859-1

yo llegue en su momento a tener que usar millones de veces el utf8_encode() y utf8_decode() por no haber establecido esa politica en mis bd

Saludos Cordiales
---------------------------------------------
Pablo F.Ruiz Diaz Rios
Desarrollo Web con tecnologias de PHP, MySQL, AJAX (aunque tecnicamente ajax no es una nueva tecnologia,sino, la combinacion de varias)
messenger: http://tinymailto.com/p431i7omsn

PROTEGE TU RED:

Compartimos mensajes. Así que POR FAVOR, si vas a realizar un reenvío de este correo o cualquier otro recibido, BORRA mi dirección de correo y todas las direcciones de correo que aparezcan en los textos.

Proteje las direcciones de  tus amigos y la mía, enviando solo como CCO o BCC, Con copia oculta y NO PARA, ni CC: para evitar que usen nuestras direcciones y recibir correos no deseados, virus, spam etc.

Juanmy

unread,
Jul 21, 2010, 2:26:42 PM7/21/10
to codeignit...@googlegroups.com
Aporto una cosita más, aún cuando lo tengas todo lo que te han dicho los compañero perfecto y aún veas carácteres extraños es posible que sea por problema de apache, entonces debes definir en cada archivo php lo siguiente (o en CI en el index)

header('Content-Type: text/html; charset=UTF-8');

En este caso logicamente todo lo tenía en utf-8 y ni por esas... hasta que le indique la forma de ver los php.

Damian Fernandez

unread,
Jul 21, 2010, 2:28:33 PM7/21/10
to codeignit...@googlegroups.com
me sigue dando el mismo error , me parece que voy a recrear la base

<<P431i7o>>

unread,
Jul 21, 2010, 2:28:57 PM7/21/10
to codeignit...@googlegroups.com
justamente por todos esos remedios "artesanales" que nos obliga el utf8, es que no lo uso mas,
eso nomas queria agregar



Saludos Cordiales
---------------------------------------------
Pablo F.Ruiz Diaz Rios
Desarrollo Web con tecnologias de PHP, MySQL, AJAX (aunque tecnicamente ajax no es una nueva tecnologia,sino, la combinacion de varias)
messenger: http://tinymailto.com/p431i7omsn

PROTEGE TU RED:

Compartimos mensajes. Así que POR FAVOR, si vas a realizar un reenvío de este correo o cualquier otro recibido, BORRA mi dirección de correo y todas las direcciones de correo que aparezcan en los textos.

Proteje las direcciones de  tus amigos y la mía, enviando solo como CCO o BCC, Con copia oculta y NO PARA, ni CC: para evitar que usen nuestras direcciones y recibir correos no deseados, virus, spam etc.


Hernando Gisinger

unread,
Jul 21, 2010, 2:39:13 PM7/21/10
to codeignit...@googlegroups.com
Acá dice todos los pasos para usar UTF-8, incluso como convertir la base de datos y las tablas:

http://philsturgeon.co.uk/news/2009/08/UTF-8-support-for-CodeIgniter

Al principio puede costar pasar a UTF-8 pero una vez que te pasas vale la pena. Codeigniter 2 ya tiene mejor soporte para UTF-8.

Jairo Ochoa

unread,
Jul 21, 2010, 2:39:15 PM7/21/10
to codeignit...@googlegroups.com
Una duda, ¿con iso-8859-1 no te ves obligado a usar códigos en el html?:
Esp&ntilde;a, jam&oacute;n, ...


--

Jairo Ochoa

Dropbox - Almacenamiento gratis / Free online backup
https://www.dropbox.com/referrals/NTg2Njc1MTg5



Jairo Ochoa

unread,
Jul 21, 2010, 2:49:16 PM7/21/10
to codeignit...@googlegroups.com
antes sólo usaba iso-8859-1 y al tener que hacer webs multi-idioma me vi obligado a usar utf-8, ahora es la única codificación que uso y no he vuelto a tener problemas
te recomiendo que hagas igual

--

Jairo Ochoa


Dropbox - Almacenamiento gratis / Free online backup
https://www.dropbox.com/referrals/NTg2Njc1MTg5



Damian Fernandez

unread,
Jul 21, 2010, 2:55:37 PM7/21/10
to codeignit...@googlegroups.com
Perfcto me funciono, segui todo al pie d ela letra muy bien explicaco
Miul Gracias. me estaba volviendo loco este problema

Damian.

Master

unread,
Jul 21, 2010, 2:58:52 PM7/21/10
to codeignit...@googlegroups.com

Tal vez te das vuelta y vuelta y el problema está en que tu navegador tiene puesto un encoding diferente a utf-8

 

 

 

------------------------------------------------------------------------

Ingeniero en Informatica.

Jefe de Sistema en plataformas Unix/Linux

*Desarrollador .Net, PHP, J2EE.

*Certificado por Linux Center Latinoamerica.

*Administración Avanzada.

*Resolución de Problemas.

*Seguridad y Redes.

http://www.elartedeprogramar.cl

http://www.systecnya.cl

Jairo Ochoa

unread,
Jul 22, 2010, 6:28:46 AM7/22/10
to codeignit...@googlegroups.com
Entiendo, antes usaba DW para Windows y por defecto asignaba el content-type iso-8859-1y veía que automáticamente hacía la conversión de caracteres especiales a las entidades, por eso pensaba que era necesario.

Ahora uso Coda para Mac y trabajo siempre en UTF-8 y no hago esa conversión.

Saludos,


--

Jairo Ochoa

Dropbox - Almacenamiento gratis / Free online backup
https://www.dropbox.com/referrals/NTg2Njc1MTg5



El 22 de julio de 2010 08:36, Carlos Mora <carlosan...@gmail.com> escribió:
Jairo,


> Una duda, ¿con iso-8859-1 no te ves obligado a usar códigos en el html?:
> Esp&ntilde;a, jam&oacute;n, ...

Creo que eso es parte de la definición de HTML, son las _entidades_
con la que se representan los caracteres no incluídos en el ASCII, y
es independiente del charset.
En el lenguaje HTML sería la forma de asegurar que, sin importar el
charset, una 'a' acentuada será una 'a' acentuada.
Lo ideal sería que transformásemos todos los caracteres especiales a
entidades, inclusive cuando volcamos datos provenientes de las bbdd,
no? Es tedioso pero nuestro output es html por definición...

Un saludo

jozeunico

unread,
Jul 24, 2010, 2:11:59 PM7/24/10
to CodeIgniter-spanish

Yo siempre revisaba la codificacion en sí del archivo (uso notepad++)

El content-type en el navegador
El encoding de la bases de datos
El encoding en la configuracion de CodeIgniter

Pero eso me pasaba por usar UTF-8 en la base de datos, cuando cambie a
iso-8859-1 la mayoria de los problemas se arreglaban en el content-
type del archivo html/php

Y sip como mencionan arriba usar entidades html soluciona esos
problemas (al menos para el idioma español) aunque implica hacer un
poquito de codigo extra

Tambien puedes probar con encode y decoce UTF como medidad desesperada
http://php.net/manual/es/function.utf8-decode.php

Saludos :)
Reply all
Reply to author
Forward
0 new messages