Ver Mensaje Individual
  #9 (permalink)  
Antiguo 21/08/2013, 06:18
waspeis
 
Fecha de Ingreso: julio-2013
Mensajes: 44
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: Error de Collation en consulta SQL

Bueno pues al final es así como ha quedado mi consulta:

Código SQL:
Ver original
  1. SELECT id_ac, nombre, apellidos FROM actores WHERE LOWER(nombre) LIKE '%" . addslashes(mb_strtolower($nom, "UTF-8")) . "%' OR LOWER(apellidos) LIKE '%" . addslashes(mb_strtolower($nom, "UTF-8")) . "%'

gnzsoloyo

Con la función LOWER() paso a minúsculas todas las letras de la palabra nombre o apellidos, y lo mismo hago con la función mb_strtolower(). Tuve que utilizar mb_strtolower() en lugar de strtolower() porque esta última no me pasaba a minúsculas las vocales acentuadas. Y la función addslashes() es para los apellidos que tienen comilla simple.

Gracias!


jurena

Esto es lo que me devolvió la consulta
default_character_set_name ---- utf8
default_collation_name ---- utf8_unicode_ci

Al final he dejado el collation de los campos nombre y apellidos de la tabla actores como utf8_bin. Las tablas tienen como collation latin1_swedish_ci y la base de datos tiene como collation utf8_unicode_ci. No se si está del todo bien o si tendrían que coincidir los collation de las tablas con el de la base de datos, pero tal como está ahora me funciona perfectamente. Me distingue los acentos y no me distingue las mayúsculas y minúsculas.

Gracias!