Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

¿Cambiar collation_server y character_set_server a utf8?

Estas en el tema de ¿Cambiar collation_server y character_set_server a utf8? en el foro de Bases de Datos General en Foros del Web. Buenas tardes, Estoy creando un buscador en PHP que me está dando problemas a la hora de buscar con y sin acentos, mi idea es ...
  #1 (permalink)  
Antiguo 28/12/2015, 12:41
sidneyendis
Invitado
 
Mensajes: n/a
Puntos:
Pregunta ¿Cambiar collation_server y character_set_server a utf8?

Buenas tardes,
Estoy creando un buscador en PHP que me está dando problemas a la hora de buscar con y sin acentos, mi idea es que si buscas "árbol", te devuelva los resultados con y sin acento, es decir, tanto árbol como arbol. Y viceversa.

El apartado de mi consulta que realiza dicha consulta es la siguiente:
Código MySQL:
Ver original
  1. WHERE nombre_receta LIKE '%".$busqueda."%' OR descripcion_receta LIKE '%".$busqueda."%'

Consigue realizar la búsqueda correctamente diferenciando mayúsculas de minúsculas, así como de palabras inacabadas, es decir, si busco "rbol" me devuelve todos los resultados con las palabras"árbol" y "arbol" entre otros.

He leído mucho sobre el tema y algunos ponen como solución incluir en la consulta lo siguiente:
Código MySQL:
Ver original
  1. COLLATE utf8_spanish_ci
Pero si incluyo el código anterior, me dá el siguiente error:
Cita:
COLLATION 'utf8_spanish_ci' is not valid for CHARACTER SET 'latin1'
Me he fijado en el cotejamiento y utilizo utf8 en la base de datos, tablas y columnas, pero no en el servidor, es decir, he realizado las siguientes consultas:
Código MySQL:
Ver original
  1. SHOW VARIABLES LIKE  'collation%'

Código MySQL:
Ver original
  1. SHOW VARIABLES LIKE  'char%
Y en ambas la parte que corresponde al servidor tiene determinado el cotejamiento "latin1":
Código MySQL:
Ver original
  1. character_set_server
  2. latin1
Código MySQL:
Ver original
  1. collation_server
  2. latin1_swedish_ci

Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Mal etiquetado. Corresponde Highlight SQL o MySQL.
Por lo tanto, tengo 2 preguntas:
  • ¿Cambiando este cotejamiento se solucionará mi problema con los acentos en mi búsqueda?
  • ¿Como puedo cambiar el cotejamiento del sevridor?

Como apunte, la base de datos está repleta de datos, he leído que no es lo mismo realizar dicho cambio con la bd vacía que llena.

Muchíiiiiiiisimas gracias!
Un saludo muy grande! :)

Última edición por gnzsoloyo; 28/12/2015 a las 13:08
  #2 (permalink)  
Antiguo 28/12/2015, 13:13
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: ¿Cambiar collation_server y character_set_server a utf8?

Cita:
COLLATION 'utf8_spanish_ci' is not valid for CHARACTER SET 'latin1'
Por supuesto que te dará ese error.
Estás mezclando cotejamientos y charsets incompatibles.
Si vas a usar una collation basada en UTF8, el charset debe ser UTF8.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 28/12/2015, 17:57
sidneyendis
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cambiar collation_server y character_set_server a utf8?

Hola gnzsoloyo!
Gracias por responder! ;)
Cita:
Si vas a usar una collation basada en UTF8, el charset debe ser UTF8.
Por ello realizo al final de mi post dos preguntas, en la segundo consulto como poder cambiar el cotejamiento del servidor.

Saludos!

Etiquetas: bd, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:25.