Foros del Web » Programando para Internet » PHP »

Dos maneras de hacer lo mismo

Estas en el tema de Dos maneras de hacer lo mismo en el foro de PHP en Foros del Web. Hasta ahora siempre que envío una consulta a mysql lo hago así: $consulta="select nombre,email from usuarios where recibir_noticias='si'"; $conexion=@mysql_connect($servidor,$usuario,$cont) or die ("No se ha podido ...
  #1 (permalink)  
Antiguo 17/02/2005, 12:35
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
Dos maneras de hacer lo mismo

Hasta ahora siempre que envío una consulta a mysql lo hago así:

$consulta="select nombre,email from usuarios where recibir_noticias='si'";
$conexion=@mysql_connect($servidor,$usuario,$cont) or die ("No se ha podido conectar con el servidor");
@mysql_select_db($bd,$conexion) or die ("No se ha podido seleccionar la base de datos");
$resultado=@mysql_query($consulta,$conexion) or die ("No se ha podido enviar la consulta");
@mysql_close($conexion) or die("No se ha podido cerrar la conexion con la base de datos");

Pero he visto que también se puede hacer así:

mysql_query("select nombre,email from usuarios where recibir_noticias='si'");

Ambas maneras funcionan, pero cuál es la mejor?, es decir, cuando es conveniente establecer la conexión, seleccionar la base de datos, enviar la consulta y cerrar la conexión... o simplemente basta con enviar la consulta y listo...

Cómo lo hacéis vosotros? Dá problemas la forma sencilla a la hora de enviar varias consultas en un mismo script o algo así?

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #2 (permalink)  
Antiguo 17/02/2005, 12:40
Avatar de Terminator ®  
Fecha de Ingreso: julio-2004
Ubicación: San Isidro, Buenos Aires
Mensajes: 176
Antigüedad: 19 años, 9 meses
Puntos: 0
Yo uso la primera forma que mencionás... me parece más prolijo y más fácil de usar.
Lo de más fácil de usar viene cuando es necesario agregar datos dinámicos a la consulta y tal vez se generan confusiones con las comillas simples y dobles.
__________________
PC Impacto
  #3 (permalink)  
Antiguo 17/02/2005, 13:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. la función en cuestión (todas) aceptan como parámetro tal tipo de dato ... si es un "string" (cadena) . .si lo usas ahí mismo "entrecomillado" OK, pero puede ser una $variable .. Realmente no hay más problema.

El único "detalle" es a nivel de rendimiento ... si usas una variable (la defines y le das varlor) ahí queda hasta que termine la ejecución del script (si no te deshaces de ella con un unset() cuando no la necesites), eso es un recurso de "memoria" que se está ocupando .. Si se lo pasas a la función directo .. la própia función al terminar su ejecución se deshace de su valor (liberando "memoria" si que tuvieras que andar haciendolo uno mismo).

Pero, definir una variable ayuda a depurar por ejemplo .. hacerle un "echo $sql" o similar .. y .. bueno . .en general cada "opción" tiene su momento y caso concreto para usarlo o no. Yo realmente uso siempre "variables" para estos casos ..

Un saludo,
  #4 (permalink)  
Antiguo 17/02/2005, 14:23
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
Entonces que manera me recomendáis, la que usa todas las funciones para el manejo de la conexión o simplemente la que envía la consulta y listo?

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #5 (permalink)  
Antiguo 17/02/2005, 14:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues "depende" .. de la situación .. pero si sacas una medía de lo que aquí hemos comentado de experiencias de uso .. aquí todos solemos usar:

$sql="SELECT ....";
mysql_query($sql);

Un saludo,
  #6 (permalink)  
Antiguo 18/02/2005, 13:03
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
Pero si nos conectamos a la base con un password... entonces tenemos que usar mysql_connect()... o funciona igual sin necesidad de establecer la conexión?

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #7 (permalink)  
Antiguo 18/02/2005, 13:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Parece que no entendí lo tu primer ejemplo ...

mysql_connect() .. lo que es establecer la conexión a la Base de datos la debes hacer -siempre-

Otra cosa es que no te has "fijado" bien en esos ejemplos de código que no ves físicamente en ese mismo script las funciones mysql_connect() y mysql_select_db() minimo .. Si te fijas .. lo que si que se suele hacer mucho es colocar esas funciones en un archivo aparte y se llama donde quieras usar mysql_query() o en general cualquier cosa con tu BD tipo:

nose.php
Código PHP:
<?
include("conexion.php");
mysql_query();
Siendo conexión.php algo tipo:
Código PHP:
<?
mysql_connect
(....);
mysql_select_db(....);
?>
Ahora nos entendimos? ..

Un saludo,
  #8 (permalink)  
Antiguo 18/02/2005, 14:16
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 9 meses
Puntos: 0
Eso era, a pesar de que la consulta se envía con solo usar mysql_query() es necesario y recomendable y más seguro establecer una conexión...

Gracias de nuevo cluster.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
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 10:25.