La mejor forma de cerrar una conexión

Iniciado por dimitrix, 14 Mayo 2011, 22:30 PM

0 Miembros y 2 Visitantes están viendo este tema.

dimitrix

Imaginaros que tenemos esta consulta:

Código (sql) [Seleccionar]

$sql="SELECT * FROM comercios_venden_maria";
$resultado = mysql_db_query($db_name, $sql);
$valor = mysql_fetch_array($resultado);
return $valor["cookies"];


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 :-)




Shell Root

#1
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 (php) [Seleccionar]
mysql_close( $sHandler );

También sería correcto hacer lo siguiente,
Código (php) [Seleccionar]
$sSQL = "SELECT * FROM tbl1;";
$sQuery = mysql_query( $sSQL );

$sSQL = "SELECT * FROM tbl2;";
$sQuery = mysql_query( $sSQL );

#ETC...


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

Código (php) [Seleccionar]
    function sExecQuery( $sSQL, $sReturn = true ){
      $sQuery = mysql_query( $sSQL, $this->sHandler );
      if( $sQuery ){
        while( $sRows = mysql_fetch_array( $sQuery, MYSQL_NUM ) ){
          $sReturnData[] = $sRows;
        }mysql_free_result( $sQuery );
        if( $sReturn ){ return $sReturnData; }else{ return true; }
      }else{ return "<b>Error: </b>".mysql_error(); }
    }
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

~ Yoya ~

Cita de: dimitrix en 14 Mayo 2011, 22:30 PM
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.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

dimitrix

Ok, entonces sería así lo primero que dices?:

Código (php) [Seleccionar]
$sql="SELECT * FROM comercios_venden_maria";
$resultado = mysql_db_query($db_name, $sql);
$valor = mysql_fetch_array($resultado);
RETURN $valor["cookies"];
mysql_close( $resultado );


Y digo yo una cosa sobre:
Código (php) [Seleccionar]

$sSQL = "SELECT * FROM tbl1;";
$sQuery = mysql_query( $sSQL );

$sSQL = "SELECT * FROM tbl2;";
$sQuery = mysql_query( $sSQL );

#ETC...


¿No tendrías que cerrar la sesión en algún momento? No sería mejor lo siguiente?:
Código (php) [Seleccionar]

$sSQL = "SELECT * FROM tbl1;";
$sQuery = mysql_query( $sSQL );
mysql_close( $sQuery );

$sSQL = "SELECT * FROM tbl2;";
$sQuery = mysql_query( $sSQL );
mysql_close( $sQuery );

#ETC...


Muchas gracias a los dos :-)