Foros del Web » Programando para Internet » PHP »

PHP OO Conexion Mysql sin cerrar

Estas en el tema de Conexion Mysql sin cerrar en el foro de PHP en Foros del Web. Hola a todos. Es la primera vez que escribo en este foro, aunque siempre me respaldo mucho de las dudas que tienen otros usuarios y ...
  #1 (permalink)  
Antiguo 27/09/2013, 11:08
 
Fecha de Ingreso: septiembre-2013
Mensajes: 1
Antigüedad: 6 años, 3 meses
Puntos: 0
Pregunta Conexion Mysql sin cerrar

Hola a todos.

Es la primera vez que escribo en este foro, aunque siempre me respaldo mucho de las dudas que tienen otros usuarios y las respuestas que encuentran.

Tengo un problema y no he logrado encontrar preguntas/soluciones que respondan a lo que se me ha presentado.

El caso es que cuando hago un show status en Mysql, la parte de las conexiones está demasiado elevada (500 o mas y en aumento). Cada vez que recargo una sola pagina de mi aplicacion en php, aumenta en dos o tres conexiones.

Lo que he logrado identificar, que es por todos los includes que hago con php y en cada pagina instancio un objeto de la clase Conexion() que contiene los metodos para conectar:

Código PHP:
private function conectar(){
      
$this->link=mysql_connect($this->servidor$this->usuario$this->password);
      
mysql_select_db($this->base_datos,$this->link);
      @
mysql_query("SET NAMES 'utf8'");

Ejecutar sentencias mysql:

Código PHP:
public function exec($sql){
      
$sql2 $this->quitar_tildes($sql);
      
$this->stmt=mysql_query($sql2,$this->link);
      return 
$this->stmt;
      
mysql_free_result($this->stmt);
      
mysql_close($this->link);
   } 
y desconectar

Código PHP:
function desconectar(){
        
mysql_close($this->link);
    } 
que la ejecuto en el destructor

Código PHP:
function __destruct(){
        
$this->desconectar();
    } 
Pero no me ha funcionado todo lo que he hecho, las conexiones van en aumento cada vez que recargo la pagina.

Ya intente guardar el objeto en una variable de sesion pero no resulta, dado que solo guarda las propiedades y no los metodos. Con programacion estructurada no sucede eso, pero necesito realizarlo con POO.

Espero me puedan ayudar!

Última edición por jmanuelgnt2; 27/09/2013 a las 11:13
  #2 (permalink)  
Antiguo 27/09/2013, 11:19
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 8 años, 4 meses
Puntos: 397
Respuesta: Conexion Mysql sin cerrar

Hola, lo que necesitas implementar es el patrón de diseño singleton, este link me ayudó mucho cuando empecé a programar en POO y lo uso para cuando creo la clase de conexión a la bd, espero te sirva.

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #3 (permalink)  
Antiguo 27/09/2013, 11:26
Avatar de Crazylegs  
Fecha de Ingreso: septiembre-2013
Ubicación: Barcelona
Mensajes: 74
Antigüedad: 6 años, 3 meses
Puntos: 14
Respuesta: Conexion Mysql sin cerrar

Hola, ¿has probado con el patrón Singleton?

[URL="http://rodriguezizquierdo.com/clase-singleton-php-de-conexion-a-mysql/"]http://rodriguezizquierdo.com/clase-singleton-php-de-conexion-a-mysql/[/URL]

Con ese método simpre tendrás una sóla instancia de tu clase Conexion.

En el ejemplo con el método estático getInstancia() de la clase crea una instancia si no la hay, si la hay entonces, la reaprobecha.

Etiquetas: conexion, mysql, objetos, poo
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 18:03.