Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/08/2009, 09:30
ascrnet
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 15 años, 6 meses
Puntos: 0
Pregunta Duda con el uso de CLASS para mysql

hola a todos

les quiero preguntar algo a la gente con mas experiencia en php 5.x + mysql 5.x + POO, tengo una clase para manejar mysql con SP pero cada vez que quiero usar la clase para leer diferentes SP tengo que hacerle un NEW si no me da error "Commands out of sync; you can't run this command now" supuestamente en POO se instancia una clase solo una vez y despues llamas a los metodos?

mi clase
Código PHP:
<?php  
    
class MyBD5
    
{  
     private 
$ID_BD;  

     
//Constructor
     
function __construct($host$bd$user$pass)
        {
         
$this->ID_BD mysqli_connect($host$user$pass$bd);  
         if (!
$this->ID_BD
         {
            
printf("Error de Conexion, Codigo: %s\n"mysqli_connect_error());
            exit;
         } 
     }

     
//Metodo Consultar query
     
public function Consultar($query)
     {    
       
$rs mysqli_query($this->ID_BD,$query);  
       if(!
$rs)
       {  
          echo 
'Sql Error: ' mysqli_error($this->ID_BD);  
          exit;  
       }  
       return 
$rs;   
     }  

    
//Metodo Resultado query
    
public function Registro($query)
    {   
       return 
mysqli_fetch_array($query);
    }  
  
    
//Metodo Libera
    
public function Libera($query)
    {
       
mysqli_free_result($query);
    }
    
    
//Destructor
    
public function __destruct() 
    {  
      
mysqli_close($this->ID_BD);
    }
}
?>
la uso asi
Código PHP:
    $d2= new MyBD5("localhost","atarilab","root","");
         
$c2=$d2->Consultar("call sp_mm_referencia(704)");
    while(
$r2 $d2->Registro($c2)){
                         echo (
$r2[5]."<br>");
    }
        
$d2= new MyBD5("localhost","atarilab","root","");
    
$c3=$d2->Consultar("call sp_mm_referencia(705)");
    while(
$r3 $d2->Registro($c3)){
                  echo (
$r3[5]."<br>");
                 } 
asi funciona, pero si elimino el segundo NEW manda el mensaje que digo

Código PHP:
                 $d2= new MyBD5("localhost","atarilab","root","");
                 
$c2=$d2->Consultar("call sp_mm_referencia(704)");
                 while(
$r2 $d2->Registro($c2)){
                         echo (
$r2[5]."<br>");
                 }

                 
$c3=$d2->Consultar("call sp_mm_referencia(705)");
                 while(
$r3 $d2->Registro($c3)){
                         echo (
$r3[5]."<br>");
                 } 
no se que pasa, por que hay que poner dos NEW o en php es asi?

saludos y gracias