Foros del Web » Programando para Internet » PHP »

Error con la conexion lanzado una segunda query

Estas en el tema de Error con la conexion lanzado una segunda query en el foro de PHP en Foros del Web. Buenas al intentar lanzar una segunda query me muestra : MySQL Error: Commands out of sync; you can't run this command now. Esta es la ...
  #1 (permalink)  
Antiguo 20/03/2012, 11:26
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años, 6 meses
Puntos: 1
Error con la conexion lanzado una segunda query

Buenas al intentar lanzar una segunda query me muestra :
MySQL Error: Commands out of sync; you can't run this command now.
Esta es la clase conexion:
Código PHP:
Ver original
  1. <?php class MySQL{
  2.  
  3.   private $conexion; private $total_consultas;
  4.  
  5.   public function MySQL(){
  6.     if(!isset($this->conexion)){
  7.       $this->conexion = (mysql_connect("localhost","fermin","fermin"))
  8.         or die(mysql_error());
  9.       mysql_select_db("db",$this->conexion) or die(mysql_error());
  10.     }
  11.   }
  12.  
  13.   public function consulta($consulta){
  14.     $this->total_consultas++;
  15.     $resultado = mysql_query($consulta,$this->conexion);  
  16.     if(!$resultado){
  17.       echo 'MySQL Error: ' . mysql_error();
  18.       exit;
  19.     }
  20.     return $resultado;
  21.   }
  22.  
  23.   public function sp($nombre,$parametros){
  24.     if(!$parametros){
  25.       $query='CALL '.$nombre.'()';
  26.     }else{
  27.       $query='CALL '.$nombre.'('.$parametros.')';
  28.     }
  29.    
  30.     return $this->consulta($query);
  31.   }
  32. }

Y esta es la primera query:

Código PHP:
Ver original
  1. require("php/Clases/GestionMarcas.php");
  2.     $GM=new GestionMarcas();
  3.     require("php/Clases/mysql.php");
  4.     $MySQL=new MySQL();
  5.     $marcas=$GM->ListarMarcas($MySQL); 
  6.     require("php/Vistas/V_ListarMarcas.php");

Estos es la clase que gestiona las Marcas:

Código PHP:
Ver original
  1. <?php class GestionMarcas{
  2.   public function ListarMarcas($MySQL){
  3.    //Listaremos todas las marcas order by Nombre Marca.
  4.    return $MySQL->sp("S_Marcas","","");
  5.   }
  6. }?>

Y en esta, la segunda query es en la que falla:

Código PHP:
Ver original
  1. <?php
  2.     require("php/Clases/GestionArticulos.php");
  3.     $GA=new GestionArticulos();
  4.  
  5.  //NO VUELVO A CREAR LA ISNTANCIA $MYSQL PUESTO QUE YA EXISTE
  6.  
  7.     $articulos=$GA->ListarArticulosPaginados($MySQL, $_GET['id'], $_GET['regini'], $_GET['regxpag']);  
  8.  
  9.     require("php/Vistas/V_ListarArticulosXMarca.php");
  10. ?>

Esta es la clase de articulos:
Código PHP:
Ver original
  1. <?php class GestionArticulos{
  2.  
  3.   public function ListarArticulosPaginados($MySQL,$IdMarca,$RegistroIicial,$RegistrosXPagina){
  4.    //Listaremos todas las articulos order by orden familia y orden articulo de esa marca.
  5.    
  6.    return $MySQL->sp("S_Articulos",$IdMarca.",".$RegistroIicial.",".$RegistrosXPagina);
  7.   }
  8. }?>

Se que no es problema de la query puesto que si elimno la primera query y no la hago, la segunda funciona correctamente, por lo que supongo que la conexion se queda ocupada o algo asi...
  #2 (permalink)  
Antiguo 20/03/2012, 15:43
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Error con la conexion lanzado una segunda query

Como podria abrir o cerrarla o nose alguna manera de probarlo?
  #3 (permalink)  
Antiguo 21/03/2012, 06:32
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Error con la conexion lanzado una segunda query

al aprecer hablan de que al hacer la primer sp no hay problema pero para el segundo hay que liberar el buffer con mysql_free_result() , esto donde deberia ponerlo?
  #4 (permalink)  
Antiguo 21/03/2012, 10:47
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Error con la conexion lanzado una segunda query

he probado haciendo un mysql_free_result() de la query y tampoco ... ayuda!!!??? :D
  #5 (permalink)  
Antiguo 21/03/2012, 11:08
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años, 6 meses
Puntos: 1
Respuesta: Error con la conexion lanzado una segunda query

Bueno he hecho un apaño , si en vez de utiliza en las dos ocasiones sp, uso en la primera (marcas) por ejmplo una query normal en vez del sp, y depues uso el sp para la segunda (articulos) me funciona , por lo tanto algo se queda inutilizado al hacer el primer sp y no permite que se haga con el segundo pero usando mysql_free_result no consigo nada. Aguna otra opcion??
  #6 (permalink)  
Antiguo 12/01/2015, 01:04
 
Fecha de Ingreso: enero-2015
Ubicación: Buenos Aires
Mensajes: 6
Antigüedad: 9 años, 10 meses
Puntos: 0
Respuesta: Error con la conexion lanzado una segunda query

hola bueno hace unos dias me paso lo mismo, este tema se que es viejo por por las dudas
te pego el link a mi tema y como lo solucione ahora ya con las librerias de mysqli.

[URL="http://www.forosdelweb.com/f18/problemas-php-con-consultas-mysql-1117967/"]http://www.forosdelweb.com/f18/problemas-php-con-consultas-mysql-1117967/[/URL]


Saludos.

Etiquetas: conexion, mysql, query, registro, segunda, sql
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 22:58.