Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/03/2012, 03:13
ferminako
 
Fecha de Ingreso: abril-2010
Mensajes: 298
Antigüedad: 14 años
Puntos: 1
Al realizar una segunda consulta en el mismo php: MySQL Error: Commands out of sync;

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 originalCopiar
<?php class MySQL{

private $conexion; private $total_consultas;

public function MySQL(){
if(!isset($this->conexion)){
$this->conexion = (mysql_connect("localhost","fermin","fermin"))
or die(mysql_error());
mysql_select_db("db",$this->conexion) or die(mysql_error());
}
}

public function consulta($consulta){
$this->total_consultas++;
$resultado = mysql_query($consulta,$this->conexion);
if(!$resultado){
echo 'MySQL Error: ' . mysql_error();
exit;
}
return $resultado;
}

public function sp($nombre,$parametros){
if(!$parametros){
$query='CALL '.$nombre.'()';
}else{
$query='CALL '.$nombre.'('.$parametros.')';
}

return $this->consulta($query);
}
}


Y esta es la primera query:

Código PHP:
Ver originalCopiar
require("php/Clases/GestionMarcas.php");
$GM=new GestionMarcas();
require("php/Clases/mysql.php");
$MySQL=new MySQL();
$marcas=$GM->ListarMarcas($MySQL);
require("php/Vistas/V_ListarMarcas.php");


Estos es la clase que gestiona las Marcas:

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


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

Código PHP:
Ver originalCopiar
<?php
require("php/Clases/GestionArticulos.php");
$GA=new GestionArticulos();

//NO VUELVO A CREAR LA ISNTANCIA $MYSQL PUESTO QUE YA EXISTE

$articulos=$GA->ListarArticulosPaginados($MySQL, $_GET['id'], $_GET['regini'], $_GET['regxpag']);

require("php/Vistas/V_ListarArticulosXMarca.php");
?>


Esta es la clase de articulos:
Código PHP:
Ver originalCopiar
<?php class GestionArticulos{

public function ListarArticulosPaginados($MySQL,$IdMarca,$Registro Iicial,$RegistrosXPagina){
//Listaremos todas las articulos order by orden familia y orden articulo de esa marca.

return $MySQL->sp("S_Articulos",$IdMarca.",".$RegistroIicial."," .$RegistrosXPagina);
}
}?>


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...