Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 (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 :-)
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 (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(); }
    }
Título: Re: La mejor forma de cerrar una conexión
Publicado por: ~ Yoya ~ en 15 Mayo 2011, 01:13 AM
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.
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 (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 :-)