Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/01/2011, 11:25
August
 
Fecha de Ingreso: febrero-2005
Mensajes: 626
Antigüedad: 19 años, 2 meses
Puntos: 10
Respuesta: Problema con coneccion mysqli

Cita:
Iniciado por spider_boy Ver Mensaje
Pero... si ejecuta correctamente tus consultas, no tendría que mostrar error alguno, ¿o en este caso los errores no son lo mismo que los warnings?

Según la documentación de PHP... esa función devuelve el resultado de la consulta SHOW WARNINGS. Pero solo dice eso, no hay ejemplos ni nada .

Según un comentario de la misma página :

Código PHP:
Ver original
  1. $r = mysqli_query($db, "INSERT INTO blah SET z = '1'");
  2. if ($j > 0) {
  3.     $e = mysqli_get_warnings($db);
  4.     for ($i = 0; $i < $j; $i++) {
  5.         var_dump($e);
  6.         $e->next();
  7.     }
  8. }
http://php.net/manual/es/mysqli.get-warnings.php

Debes asegurarte primero que hayan warnings, para lo cual debes usar mysqli_warnings_count.

Ahora, sin ver el código es un tanto difícil adivinar.

Saludos.
Hola spider_boy

Bueno, me refiero a que funciona bien, que muestra los errores con consultas erroneas, el problema es que mysql_get_warnings me devuelve un boolean(false) y cuando hago la consulta SHOW WARNINGS si me arroja los WARNINGS, voy a poner tres de las funciones de la clase que me hacen la coneccion, habia puesto el codigo, pero como habia arreglado el problema lo quite, ahi va de nuevo:
Código PHP:
    function ini_sql(){
        global 
$config;
        
$host=$config['db']['host'];
        
$puerto=$config['db']['puerto'];
        
$usuario=$config['db']['usuario'];
        
$password=$config['db']['password'];
        
$database=$config['db']['database'];
        
$socket=$config['db']['socket'];
        if(
$config['db']['clustering']==false){
            if(
$this->test_host($host[1],$puerto[1])==TRUE){
                
$link=$this->conectar($host[1],$usuario[1],$password[1],$database[1],$puerto[1],$socket[1]);
                return 
$link;
            }else{
                
$this->alerta_grave('1',$host[1]);
                return 
false;
            }
        }else{
            if(
$this->test_host_multi($host,$puerto)==TRUE){
                
$link=$this->conectar_cluster($config);
                return 
$link;
            }
        }
    }

    
    function 
conectar($host,$user,$pass,$db,$puerto,$socket){
        return 
$this->functions['connect']($host,$user,$pass,$db,$puerto,$socket);
        if (
mysqli_connect_error()) {
            
$this->alerta_grave('2',mysqli_connect_errno(),mysqli_connect_error(),$host);
        }
    }


    function 
write_sql($sql,$multi=0){
        
$linksql=$this->ini_sql();
        global 
$config;
        
$resulta="";
        
$msjinterno="";        
        if(
$multi==TRUE){
            
$queryfunction=$this->functions['multi_query'];
        }else{
            
$queryfunction=$this->functions['query'];
        }
        if(
$config['db']['clustering']==TRUE){
            for(
$i=1;$i<=count($linksql);$i++){
                
$queryfunction($linksql[$i],"START TRANSACTION;");
                
$resulta=$queryfunction($linksql[$i],$sql);
                if(
$resulta==FALSE){
                    
$this->alerta_grave('3',mysqli_connect_error(), mysqli_connect_errno(),$sql,$linksql[$i]);
                    
$queryfunction($linksql[$i],"ROLLBACK;");
                }else{
                    
$queryfunction($linksql[$i],"COMMIT;");
                }
                
$this->cerrar_sql($linksql[$i],$resulta);
            }
        }else{
             
$queryfunction($linksql,"START TRANSACTION; ");
            
$resulta=$queryfunction($linksql,$sql);
            if(
$resulta==FALSE){
                
$this->alerta_grave('3',mysqli_connect_error(), mysqli_connect_errno(),$sql,$linksql);
                
$queryfunction($linksql,"ROLLBACK;");
            }else{
                
$queryfunction($linksql,"COMMIT;");
            }
            
$this->cerrar_sql($linksql);    
        }
    }