Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: dimitrix en 14 Mayo 2011, 22:30 pm



Título: La mejor forma de cerrar una conexión
Publicado por: dimitrix en 14 Mayo 2011, 22:30 pm
Imaginaros que tenemos esta consulta:

Código
  1. $sql="SELECT * FROM comercios_venden_maria";
  2. $resultado = mysql_db_query($db_name, $sql);
  3. $valor = mysql_fetch_array($resultado);
  4. RETURN $valor["cookies"];
  5.  

1º ¿Cual sería la forma más correcta de desconectar la conexión? ¿Por qué es importante desconectarla?

2º ¿Se puede usar de nuevo la variable $sql, $resultado, $valor para hacer otras sentencias debajo de esa? (está claro que se puede y entiendo el funcionamiento de que la sobreescribe), pero ¿Está bien? ¿Es mejor hacerlo de otra forma?

Gracias, son dudas tontas, que siempre lo hago de una forma o de otra y quiero estar totalmente seguro.

gracias :-)


Título: Re: La mejor forma de cerrar una conexión
Publicado por: Shell Root en 14 Mayo 2011, 23:30 pm
Sería correcto cerrar la conexión a la base de datos, esto se haría con el siguiente código implementado al final de cada script que interactue con la conexión.
Código
  1. mysql_close( $sHandler );

También sería correcto hacer lo siguiente,
Código
  1. $sSQL = "SELECT * FROM tbl1;";
  2. $sQuery = mysql_query( $sSQL );
  3.  
  4. $sSQL = "SELECT * FROM tbl2;";
  5. $sQuery = mysql_query( $sSQL );
  6.  
  7. #ETC...

O en su defecto, como se utilizará varias consultas se prefiere usar POO!

Código
  1.    function sExecQuery( $sSQL, $sReturn = true ){
  2.      $sQuery = mysql_query( $sSQL, $this->sHandler );
  3.      if( $sQuery ){
  4.        while( $sRows = mysql_fetch_array( $sQuery, MYSQL_NUM ) ){
  5.          $sReturnData[] = $sRows;
  6.        }mysql_free_result( $sQuery );
  7.        if( $sReturn ){ return $sReturnData; }else{ return true; }
  8.      }else{ return "<b>Error: </b>".mysql_error(); }
  9.    }


Título: Re: La mejor forma de cerrar una conexión
Publicado por: ~ Yoya ~ en 15 Mayo 2011, 01:13 am
1º ¿Cual sería la forma más correcta de desconectar la conexión? ¿Por qué es importante desconectarla?

Bueno eso depende... por defecto PHP cierra la conexión/es MYSQL al finalizar el script.

Pero si inicias varias conexiones MYSQL, es importante que la vayas cerrando para tener un mejor rendimiento.

Saludos.


Título: Re: La mejor forma de cerrar una conexión
Publicado por: dimitrix en 16 Mayo 2011, 12:49 pm
Ok, entonces sería así lo primero que dices?:

Código
  1. $sql="SELECT * FROM comercios_venden_maria";
  2. $resultado = mysql_db_query($db_name, $sql);
  3. $valor = mysql_fetch_array($resultado);
  4. RETURN $valor["cookies"];
  5. mysql_close( $resultado );
  6.  

Y digo yo una cosa sobre:
Código
  1. $sSQL = "SELECT * FROM tbl1;";
  2. $sQuery = mysql_query( $sSQL );
  3.  
  4. $sSQL = "SELECT * FROM tbl2;";
  5. $sQuery = mysql_query( $sSQL );
  6.  
  7. #ETC...
  8.  

¿No tendrías que cerrar la sesión en algún momento? No sería mejor lo siguiente?:
Código
  1. $sSQL = "SELECT * FROM tbl1;";
  2. $sQuery = mysql_query( $sSQL );
  3. mysql_close( $sQuery );
  4.  
  5. $sSQL = "SELECT * FROM tbl2;";
  6. $sQuery = mysql_query( $sSQL );
  7. mysql_close( $sQuery );
  8.  
  9. #ETC...
  10.  

Muchas gracias a los dos :-)