Ver Mensaje Individual
  #22 (permalink)  
Antiguo 15/06/2010, 23:49
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Respuesta: Numero de consultas realizas script con PDO

Buenas,

Me gustaría saber como puedo resetear el número de consultas que lleva almacenada y resetearla a 0 cuando me haga falta durante la ejecución del script.

Me explico a continuación:
Parto de la clase extendida siguiente

Código PHP:
Ver original
  1. <?php
  2. /*
  3.     CLASE EXTENDIDA DE PDO para contar el número de consultas que se realizan
  4. */
  5. class CountPDO extends PDO
  6. {
  7.     private $_queryCount = 0;
  8.    
  9.     public function query()
  10.     {
  11.         $this->_increaseQueryCount();
  12.         $args = func_get_args();
  13.        
  14.         return call_user_func_array(array('parent', 'query'), $args);
  15.     }
  16.    
  17.     public function prepare($statement, $driver_options = array())
  18.     {
  19.         $this->_increaseQueryCount();
  20.         return parent::prepare($statement, $driver_options);
  21.     }
  22.    
  23.     private function _increaseQueryCount()
  24.     {
  25.         $this->_queryCount++;
  26.     }
  27.    
  28.     public function getQueryCount()
  29.     {
  30.         return $this->_queryCount;
  31.     }
  32. }
  33. ?>

Tengo un script que realiza una conexión a la base de datos y luego procede a realizar mediante un bucle 10 acciones x ej. Para no tener que estar desconectando de la base de datos y volviendo a conectar para cada acción, me gustaría saber de una forma sencilla cuantas consultas se ejecutaron tras realizar cada acción.

Actualmente, lo que muestra es el acumulado
$db->getQueryCount();

Es decir, se realiza la acción uno, y se hacen 9 consultas, luego se ejecuta la acción 2 y se hacen 10 consultas, en lugar de aparecer que lleva 19 consultas, me gustaría poderle decir que tras cada acción del script volviese a empezar desde 0.

¿Cómo se podría hacer?

Porque analizando la clase, veo que la variable es privada y esto dificulta que se pueda hacer private $_queryCount = 0; no?

Muchas gracias de antemano!