Foros del Web » Programando para Internet » PHP »

mybb Commands out of sync

Estas en el tema de mybb Commands out of sync en el foro de PHP en Foros del Web. Hola Estoy usando mybb, y nunca me ha dado problemas, pero al usar los templates me da el siguiente error MyBB has experienced an internal ...
  #1 (permalink)  
Antiguo 25/12/2014, 16:50
 
Fecha de Ingreso: julio-2014
Mensajes: 161
Antigüedad: 10 años, 4 meses
Puntos: 4
mybb Commands out of sync

Hola

Estoy usando mybb, y nunca me ha dado problemas, pero al usar los templates me da el siguiente error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
2014 - Commands out of sync; you can't run this command now
Query:
SELECT template FROM mybb_templates WHERE title='TD_ajax_cuanti' AND sid IN ('-2','-1','1') ORDER BY sid DESC LIMIT 1

Pero ejecuto esa consulta en phpmyadmin y me ejecuta perfectamente la consulta, sin ningun problema, que sera?

Última edición por Rebuilding; 25/12/2014 a las 17:13
  #2 (permalink)  
Antiguo 25/12/2014, 17:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: mybb Commands out of sync

Bueno, si pones el mensaje directamente en Google tienes la respuesta...

http://dev.mysql.com/doc/refman/5.0/...t-of-sync.html

Cita:
B.5.2.14 Commands out of sync

If you get Commands out of sync; you can't run this command now in your client code, you are calling client functions in the wrong order.

This can happen, for example, if you are using mysql_use_result() and try to execute a new query before you have called mysql_free_result(). It can also happen if you try to execute two queries that return data without calling mysql_use_result() or mysql_store_result() in between.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 25/12/2014, 17:22
 
Fecha de Ingreso: julio-2014
Mensajes: 161
Antigüedad: 10 años, 4 meses
Puntos: 4
Respuesta: mybb Commands out of sync

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Bueno, si pones el mensaje directamente en Google tienes la respuesta...

[url]http://dev.mysql.com/doc/refman/5.0/en/commands-out-of-sync.html[/url]
si ya habia visto eso, pero el mybb, al invocar a un template

eval('$listprods= "'.$templates->get('TD_ajax_listprods').'";');

ya automaticamente, hace el mysql_free_result, entonces que podria ser?
  #4 (permalink)  
Antiguo 25/12/2014, 17:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: mybb Commands out of sync

Que no lo esté haciendo...

¿Comprobaste fehacientemente que está ejecutando las cosas en el orden correcto? ¿Lo verificaste?

No existen las cosas "automágicas" en este rubro. Sólo existen las programadas, y no siempre funcionan como se supone que lo hagan, si hay defectos en algún punto, o datos que corrompan la secuencia de un proceso.

Primero debuggea, y luego veamos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 25/12/2014, 17:41
 
Fecha de Ingreso: julio-2014
Mensajes: 161
Antigüedad: 10 años, 4 meses
Puntos: 4
Respuesta: mybb Commands out of sync

Esto es lo que estoy haciendo, ya hice un free_result con el objeto que me da mybb, en la consulta anterior

Código PHP:
Ver original
  1. <?php
  2.  
  3. define('IN_MYBB', 1);
  4.  
  5. //$templatelist="TD_Clasif,TD_clasif_colapsa,TD_clasif_sinjs";
  6. require_once '../FORO/global.php';
  7.  
  8. class capajax{
  9.     function numfilas($datos){
  10.         global $db;
  11.         //$sinlimit=$this->quitarlimit($datos);
  12.         $resultado=$db->query($datos);
  13.         $numerofilas = $db->num_rows($resultado);
  14.         $db->free_result($resultado);
  15.  
  16.         return $numerofilas;
  17.     }
  18.     function numpaginas($datos){
  19.         $resultadoporpag="10";
  20.     //  $numerofilas=$this->numfilas($datos);
  21.         $totalpaginas=$datos/$resultadoporpag;
  22.         $numeropaginas=ceil ($totalpaginas);
  23.         return $numeropaginas;
  24.     }
  25.  
  26.     function crearpaginacion($numpaginas){
  27.         global $templates;
  28.         $a=1;
  29.         for($i=1;$i<=$numpaginas;$i++){
  30.           eval('$paginacion_c.= "'.$templates->get('TD_ajax_pagina_ciclo').'";');
  31.             $a++;
  32.             if($a>2){$a=1;}
  33.         }
  34.         eval('$paginacion= "'.$templates->get('TD_ajax_pagina').'";');
  35.         return $paginacion;
  36.     }
  37.     function listaproductos($datos){
  38.         global $db,$templates,$mybb;
  39.         $classfila[0]="filauno";
  40.         $classfila[1]="filados";
  41.         $i=0;
  42.         $listprods_c="";
  43.         $sql=$this->construirsql($datos,10);
  44.         $resultado = $db->query($sql);
  45.         while ($filas = $db->fetch_array($resultado)) {
  46.             $_SESSION['PRODS'][$filas['ID']]['PRODUCTO']=$filas['PRODUCTO'];
  47.             $precioclient=round($filas['PRECIOCLIENT'],2);
  48.             eval('$listprods_c.= "'.$templates->get('TD_ajax_listprods_ciclo').'";');
  49.             $i++;
  50.             if($i>1){$i=0;}
  51.         }
  52.         eval('$listprods= "'.$templates->get('TD_ajax_listprods').'";');
  53.         return $listprods;
  54.     }
  55.     function construirsql($datos,$numfilas){
  56.         global $mybb;
  57.         $uid=$mybb->user['uid'];
  58.         $ip="0";
  59.        
  60.         $infototal=explode("|",$datos);
  61.         $sql="CALL BUSCAR('%".$infototal[0]."%',".$infototal[1].",";
  62.         $sql.=$infototal[2].",'".$infototal[3]."','".$infototal[4]."',";
  63.         $sql.=$infototal[5].",".$numfilas.",".$uid.",'".$ip."')";
  64.         return $sql;       
  65.     }
  66.     function decidircontenidolistado($datos){
  67.         global $templates, $db;
  68.         $nohayresultados="No hay resultados";
  69.         $sql=$this->construirsql($datos,0);
  70.         $numerofilas=$this->numfilas($sql);
  71.         $numeropaginas=$this->numpaginas($numerofilas);
  72.         if($numerofilas==1){$resultados=" resultado";}else{$resultados=" resultados";}                                     
  73.         if($numeropaginas==1){$paginas=" pagina";}else{$paginas=" paginas";}
  74.  
  75.         eval('$ajaxcapauno= "'.$templates->get('TD_ajax_cuanti').'";');
  76.    
  77.         $ajaxcapados=$this->crearpaginacion($numeropaginas);
  78.  
  79.         $ajaxcapatres=$this->listaproductos($sql);
  80.         if($numeropaginas==0){$html=$nohayresultados;}
  81.         if($numeropaginas==1){$html=$ajaxcapauno.$ajaxcapatres;}
  82.         if($numeropaginas>1){$html=$ajaxcapauno.$ajaxcapados.$ajaxcapatres;}
  83.        
  84.         return $html;
  85.     }
  86.    
  87.     function derivacionaccion($datos){
  88.         $html="";
  89.         $derivacion=explode("¡",$datos);
  90.         $info=$derivacion[0];
  91.         $seccion=$derivacion[1];
  92.         if($seccion==0){
  93.             $html.=$this->decidircontenidolistado($info);
  94.         }
  95.         if($seccion==1){
  96.             $html.=$this->detalladototal($info);
  97.         }
  98.         if($seccion==2){
  99.             $html.=$this->seleccionarpagina($info);
  100.         }
  101.         if($seccion==3){
  102.             $html.=$this->autocompletador($info);
  103.         //  $html.=$datos;
  104.         }
  105.         if($seccion==4){
  106.             $html.=$this->decidircontenidolistado($info,'1','1');
  107. //          $html.=$datos;
  108.         }
  109.         if($seccion==5){
  110.             $dat=explode("|",$info);
  111.             $html=$this->comprar($dat[0],$dat[1],$dat[2]);
  112.             //$html.=$info;
  113.             //$html="LO HAS COMPRADO";
  114.         }
  115.     }
  116. }
  117.  
  118. $capajax=new capajax;
  119.  
  120. $html=$capajax->derivacionaccion('memo|0|99999|1,1-1,1-1-1,1-1-2,1-1-3,1-2,1-2-1,1-2-2,1-2-3,1-3,1-3-1,1-3-2,1-3-3|DESC|0|0¡0');
  121.  
  122.  
  123. eval("\$page = \"".$templates->get("TD_AJAX")."\";");
  124.             output_page($page);
  125. ?>
  #6 (permalink)  
Antiguo 26/12/2014, 07:24
 
Fecha de Ingreso: julio-2014
Mensajes: 161
Antigüedad: 10 años, 4 meses
Puntos: 4
Respuesta: mybb Commands out of sync

YA HICE DE TODO Y NO SE QUE HACER

Bueno investigando efectivamente cuando se usan PROCEDURES da algo de problemas, porque es una multiquery PERO SOLO DA UN SOLO RESULTSET, EN EL PHPMYADMIN NO DA PROBLEMAS Y SOLO DA UN SOLO RESULTSET, segun aqui da la respuesta, pero no funciona

https://ellislab.com/forums/viewthread/221544/

Y efectivamente el mybb no hace ningun free_result() y mucho menos un next_result(), hice una funcioncita en la class que estoy trabajando, tambien intente descomentando el while, que viene en esta funcion

Código PHP:
    function consultasql($datos){
         global 
$db;
        
$resultado $db->query($datos);
        return 
$resultado;
//while($db->next_result($resultado));
        
$db->next_result($resultado);
        
$db->free_result($resultado);
    } 
Tambien en el archivo db_mysqli.php del mybb puse esto

Código PHP:
    function next_result($res){
        
mysqli_next_result($res);
    } 
Ya en lugar de invocar $db->query invoco $this->consultasql, pero sigue

2014 - Commands out of sync; you can't run this command now


Última edición por Rebuilding; 26/12/2014 a las 07:53

Etiquetas: mybb, select, 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 13:56.