Foros del Web » Programando para Internet » PHP »

no me funciona $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY ,t rue);

Estas en el tema de no me funciona $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY ,t rue); en el foro de PHP en Foros del Web. buenas segun he buscado este codigo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $DB -> setAttribute ( PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY , true ) ; me sirve ...
  #1 (permalink)  
Antiguo 16/08/2013, 09:32
Avatar de shake2427  
Fecha de Ingreso: julio-2011
Mensajes: 116
Antigüedad: 12 años, 9 meses
Puntos: 3
no me funciona $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY ,t rue);

buenas


segun he buscado este codigo

Código PHP:
Ver original
  1. $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,true);

me sirve para evitar este error

Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.' in C:\AppServ\www\movist@rmoviles\src\class\class.neg ocio.php:36

pero no me quiere funcionar me sigue apareciendo el mismo error

el codigo completo es el siguiente.

Código PHP:
Ver original
  1. public function add_negocio($addnombrenegocio,$addsociedadnegocio,$addperscontacnegocio,
  2.                                 $addzonanegocio,$addubicnegocio,$adddirecnegocio,$addbarrionegocio,
  3.                                 $addtelfijonegocio,$addcelularnegocio,$addmuniciunegocio,
  4.                                 $addemailnegocio,$addcedulanitnegocio,$addpasswnegocio){
  5.        
  6.            
  7.                 //conexion BD
  8.             $classDB = new conexion;
  9.             $DB = $classDB->conexionBD();  
  10.            
  11.             $DB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  12.             $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,true);
  13.            
  14.             $DB->beginTransaction();
  15.             $qryvalicedula = $DB->prepare('CALL consulta_validacion_cedula(:cedula)');
  16.             $qryvalicedula->bindParam(':cedula', trim($addcedulanitnegocio));
  17.             $qryvalicedula->execute();
  18.             $DB->commit();
  19.             $qryvalicedula->closeCursor();
  20.            
  21.            
  22.             if($restotal = $qryvalicedula->rowcount() >= 1){
  23.                 $responseaddnegocio = "yaexiste";
  24.             }
  25.             else{
  26.                
  27.                 list($ciudad,$departamento) = explode("-",$addmuniciunegocio);
  28.                
  29.                 $qryvalimunicipio = $DB->prepare('CALL consulta_verificacion_municipio(:ciudad,:departamento)');
  30.              
  31.                 $DB->beginTransaction();
  32.                 $qryvalimunicipio->bindParam(':ciudad', trim($ciudad));
  33.                 $qryvalimunicipio->bindParam(':departamento', trim($departamento));
  34.                 $qryvalimunicipio->execute();
  35.                 $DB->commit();
  36.                 $qryvalimunicipio->closeCursor();
  37.                
  38.                
  39.                 if($restotalmuni = $qryvalimunicipio->rowcount() <= 0){
  40.                     $responseaddnegocio = "muninoexiste";
  41.                 }
  42.                 else{
  43.                     $responseaddnegocio = false;   
  44.                 }
  45.                
  46.             }
  47.  
  48.         return $responseaddnegocio;
  49.     }
  #2 (permalink)  
Antiguo 16/08/2013, 09:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: no me funciona $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY ,t rue



¿Ya leíste el mensaje de error?

Es curioso porque ahí mismo te da recomendaciones, ¿has hecho caso omiso?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 16/08/2013, 09:43
Avatar de shake2427  
Fecha de Ingreso: julio-2011
Mensajes: 116
Antigüedad: 12 años, 9 meses
Puntos: 3
Respuesta: no me funciona $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY ,t rue

Cita:
Iniciado por pateketrueke Ver Mensaje


¿Ya leíste el mensaje de error?

Es curioso porque ahí mismo te da recomendaciones, ¿has hecho caso omiso?

en el mensaje de error aparece lo siguiente

.... you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute....

es la solucion que estoy usando, en el codigo lo puedes ver como lo estoy usando.
y segun he buscado es la mejor solucion,pero segun veo no hace nada por que sigue apareciendo el mismo error.
  #4 (permalink)  
Antiguo 16/08/2013, 10:19
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: no me funciona $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY ,t rue

Antes de eso dice algo más, ¿eso no te sirve?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 16/08/2013, 10:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: no me funciona $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY ,t rue

Como te dice @paquetetrueke: mira con atención todo el texto.
O usas el traductor de Google:
Cita:
Excepción no detectada 'PDOException' con mensaje 'SQLSTATE [HY000]: General error: 2014
No se puede ejecutar consultas, mientras que otras consultas sin búfer están activas.
Considere el uso de PDOStatement :: fetchAll ().
Alternativamente, si su código sólo se ejecuta alguna vez en mysql, puede permitir alojar la consulta en búfer estableciendo el atributo PDO :: MYSQL_ATTR_USE_BUFFERED_QUERY. en C: \ AppServ \ www \ Movist @ rmoviles \ src \ Class \ class.neg ocio.php: 36
¿Te queda más claro así?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 16/08/2013, 10:56
Avatar de shake2427  
Fecha de Ingreso: julio-2011
Mensajes: 116
Antigüedad: 12 años, 9 meses
Puntos: 3
Respuesta: no me funciona $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY ,t rue

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Como te dice @paquetetrueke: mira con atención todo el texto.
O usas el traductor de Google:

¿Te queda más claro así?


he usado las dos soluciones que me brindan ahi y ninguna parece funcionar.
  #7 (permalink)  
Antiguo 16/08/2013, 11:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: no me funciona $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY ,t rue

Cita:
he usado las dos soluciones que me brindan ahi y ninguna parece funcionar.
Información insuficiente:
- No sabemos cómo lo implementaste (código).
- No sabemos a qué le llamas "no funcionar" y cómo se manifiesta.
- No conocemos el contexto completo de tus pruebas.

En esencia: tienes que ser más detallado, más descriptivo. "no funciona" no es información que nos sirva para analizar nada.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 16/08/2013, 13:24
Avatar de shake2427  
Fecha de Ingreso: julio-2011
Mensajes: 116
Antigüedad: 12 años, 9 meses
Puntos: 3
Respuesta: no me funciona $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY ,t rue

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Información insuficiente:
- No sabemos cómo lo implementaste (código).
- No sabemos a qué le llamas "no funcionar" y cómo se manifiesta.
- No conocemos el contexto completo de tus pruebas.

En esencia: tienes que ser más detallado, más descriptivo. "no funciona" no es información que nos sirva para analizar nada.

el codigo esta en la primera publicacion que hice, por si no has revisado.
el error siempre es el mismo, el cual tambien esta en la primera publicacion.
  #9 (permalink)  
Antiguo 16/08/2013, 17:08
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: no me funciona $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY ,t rue

Cita:
Iniciado por shake2427 Ver Mensaje
el codigo esta en la primera publicacion que hice, por si no has revisado.
el error siempre es el mismo, el cual tambien esta en la primera publicacion.
El error es por que haces un excute o un query y no consumes el buffer con un fech. asi que necesitas usar un fech y liberar el statment con el closeCursor o que hagas un unset.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #10 (permalink)  
Antiguo 21/08/2013, 15:45
Avatar de shake2427  
Fecha de Ingreso: julio-2011
Mensajes: 116
Antigüedad: 12 años, 9 meses
Puntos: 3
Respuesta: no me funciona $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY ,t rue

Cita:
Iniciado por hhs Ver Mensaje
El error es por que haces un excute o un query y no consumes el buffer con un fech. asi que necesitas usar un fech y liberar el statment con el closeCursor o que hagas un unset.

me podrias dar un ejemplo de como lo harias? por que siempre que llamo a dos pocedimientos almacenados en una clase me aparece ese error.

y ya intente asi como me dijiste, pero me sigue apareciendo el mismo error.
  #11 (permalink)  
Antiguo 21/08/2013, 15:54
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: no me funciona $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY ,t rue

Hola porque no inviertes estas lineas

Código PHP:
Ver original
  1. $DB->commit();
  2. $qryvalicedula->closeCursor();

por

Código PHP:
Ver original
  1. $qryvalicedula->closeCursor();
  2. $DB->commit();

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #12 (permalink)  
Antiguo 21/08/2013, 16:14
Avatar de shake2427  
Fecha de Ingreso: julio-2011
Mensajes: 116
Antigüedad: 12 años, 9 meses
Puntos: 3
Respuesta: no me funciona $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY ,t rue

Cita:
Iniciado por jonni09lo Ver Mensaje
Hola porque no inviertes estas lineas

Código PHP:
Ver original
  1. $DB->commit();
  2. $qryvalicedula->closeCursor();

por

Código PHP:
Ver original
  1. $qryvalicedula->closeCursor();
  2. $DB->commit();

Saludos

hola ya hice el cambio que me dijiste pero me sigue generando el mismo error, tengo el codigo de la siguiente manera.

Código PHP:
Ver original
  1. public function add_negocio($addnombrenegocio,$addsociedadnegocio,$addperscontacnegocio,
  2.                                 $addzonanegocio,$addtiponegocio,$addubicnegocio,$adddirecnegocio,$addbarrionegocio,
  3.                                 $addtelfijonegocio,$addcelularnegocio,$adddepartnegocio,
  4.                                 $selectciudad,$addemailnegocio,$addcedulanitnegocio,
  5.                                 $addpasswnegocio,$addrolnegocio,$addestadousunegocio){
  6.        
  7.            
  8.                 //conexion BD
  9.             $classDB = new conexion;
  10.             $DB = $classDB->conexionBD();  
  11.            
  12.             $DB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  13.             $DB->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,true);
  14.            
  15.             $DB->beginTransaction();
  16.             $qryvalicedula = $DB->prepare('CALL consulta_validacion_cedula(:cedula)');
  17.             $qryvalicedula->bindParam(':cedula', trim($addcedulanitnegocio));
  18.             $qryvalicedula->execute();
  19.             $qryvalicedula->closeCursor();
  20.             $DB->commit();
  21.            
  22.         if($qrynumcedula = $qryvalicedula->rowcount()){
  23.             $responseaddnegocio = "yaexiste";
  24.         }
  25.         else{
  26.  
  27.             $qryaddnegocio = $DB->prepare('CALL insertar_addnegocio(:addnombrenegocio,:addsociedadnegocio,
  28.                         :addperscontacnegocio,:addzonanegocio,:addtiponegoci,:addubicnegocio,
  29.                         :adddirecnegocio,:addbarrionegocio,:addtelfijonegocio,:addcelularnegocio,
  30.                         :selectciudad,:addemailnegocio,:addcedulanitnegocio,
  31.                         :addpasswnegocio,:usuariossesion,:addrolnegocio,:addestadousunegocio)');
  32.                        
  33.             $qryaddnegocio->bindParam(':addnombrenegocio',trim(htmlentities($addnombrenegocio)));
  34.             $qryaddnegocio->bindParam(':addsociedadnegocio',trim(htmlentities($addsociedadnegocio)));
  35.             $qryaddnegocio->bindParam(':addperscontacnegocio',trim(htmlentities($addperscontacnegocio)));
  36.             $qryaddnegocio->bindParam(':addzonanegocio',trim(htmlentities($addzonanegocio)));
  37.             $qryaddnegocio->bindParam(':addtiponegoci',trim(htmlentities($addtiponegocio)));
  38.             $qryaddnegocio->bindParam(':addubicnegocio',trim(htmlentities($addubicnegocio)));
  39.             $qryaddnegocio->bindParam(':adddirecnegocio',trim(htmlentities($adddirecnegocio)));
  40.             $qryaddnegocio->bindParam(':addbarrionegocio',trim(htmlentities($addbarrionegocio)));
  41.             $qryaddnegocio->bindParam(':addtelfijonegocio',trim(htmlentities($addtelfijonegocio)));
  42.             $qryaddnegocio->bindParam(':addcelularnegocio',trim(htmlentities($addcelularnegocio)));
  43.             $qryaddnegocio->bindParam(':selectciudad',trim(htmlentities($selectciudad)));
  44.             $qryaddnegocio->bindParam(':addemailnegocio',trim(htmlentities($addemailnegocio)));
  45.             $qryaddnegocio->bindParam(':addcedulanitnegocio',trim(htmlentities($addcedulanitnegocio)));
  46.             $qryaddnegocio->bindParam(':addpasswnegocio',trim(htmlentities($addpasswnegocio)));
  47.             $qryaddnegocio->bindParam(':usuariossesion',trim(htmlentities($_SESSION['identificacion'])));
  48.             $qryaddnegocio->bindParam(':addrolnegocio',trim($addrolnegocio));
  49.             $qryaddnegocio->bindParam(':addestadousunegocio',trim($addestadousunegocio));
  50.             $qryaddnegocio->execute();             
  51.            
  52.          }          
  53.      
  54.  
  55.         return $responseaddnegocio;
  56.     }

Etiquetas: mysql, 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 10:42.