Ver Mensaje Individual
  #7 (permalink)  
Antiguo 16/09/2013, 15:05
Pantaláimon
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 10 meses
Puntos: 32
Respuesta: comportamiento inesperado utf8_spanish_ci

Mi versión es la 5.5.32
según pone aquí:
Código:
$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1567
Server version: 5.5.32-0ubuntu0.12.04.1 (Ubuntu)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Cita:
Iniciado por jonni09lo
Te preguntaba ya que como ser humano se pueden cometer errores (todo es relativo y más en programación)
Lo he probado varias veces depurando hasta donde he sabido para localizar el error. Después cuando escribía el post lo he vuelto a probar vigilando bien cada paso, por esas cosas de no hacer el ridículo más de lo necesario. Ahora lo he probado con collate utf8_unicode_ci y también diferencia vocales con y sin tilde.

Ahora he cambiado la función connect_db del codigo añadiendole el metodo set_charset:
Código PHP:
    function connect_db()
    {
        
$db_link = new mysqli"localhost""user""1234""dbase" );
        
// comprobar que la conexión se efectúe
        
if( $db_link->connect_errno )
        {
            echo 
"Conexion fallida: ".$db_link->connect_error;
            exit();
        }
        
$db_link->set_charset"utf8" );
        return 
$db_link;
    } 
Y ya tiene el comoportamiento que debería tener. De todos modos, no entiendo por qué es necesario ese método si cuando creo la base de datos ya le doy el charset adecuado.

Sobre las diferencias entre utf8_unicode_ci y utf8_general_ci ya había leído algo pero tampoco le había prestado demasiado atención pues problema surgía con algunas comparaciones de caracteres que no tenían que ver con los latinos.

Un saludo y gracias!