Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Que pasa con esto?

Estas en el tema de Que pasa con esto? en el foro de PHP en Foros del Web. Hola a todos tengo algunas dudas en un archivo hago varios consultas que pasa si cada consulta agrego mysql_select_db($database_connection, $connection); hago una conexión a mi ...
  #1 (permalink)  
Antiguo 03/02/2015, 10:07
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.258
Antigüedad: 8 años
Puntos: 9
Que pasa con esto?

Hola a todos tengo algunas dudas en un archivo hago varios consultas que pasa si cada consulta agrego
mysql_select_db($database_connection, $connection);
hago una conexión a mi BD por cada linea igual ??? (esto saturará mi servidor a la larga)...

mysql_query($query_clientes, $connection) or die(mysql_error()); Esta linea es necesaria en cada consulta o es incorrecto agregarla...

Les pido me digan todos los incovenientes de lo que estoy haciendo hasta ahorita y me den un ejemplo por favor de la manera en que sería correcto hacerlo

Código PHP:
Ver original
  1. mysql_select_db($database_connection, $connection);
  2. $query_clientes = sprintf("SELECT * FROM ...);
  3. $clientes = mysql_query($query_clientes, $connection) or die(mysql_error());
  4. $row_clientes = mysql_fetch_assoc($clientes);
  5.  
  6.  
  7. mysql_select_db($database_connection, $connection);
  8. $query_clientesotros= sprintf("SELECT nombre,edo...);
  9. $clientesotros= mysql_query($clientesotros, $connection) or die(mysql_error());
  10. $row_clientesotros = mysql_fetch_assoc($clientesotros);
  11.  
  12.  
  13. mysql_select_db($database_connection, $connection);
  14. $query_almacen = sprintf("SELECT * FROM ...);
  15. $almacen= mysql_query($almacen, $connection) or die(mysql_error());
  16. $row_almacen  = mysql_fetch_assoc($almacen);

Última edición por gnzsoloyo; 03/02/2015 a las 10:14
  #2 (permalink)  
Antiguo 03/02/2015, 10:13
 
Fecha de Ingreso: marzo-2012
Mensajes: 176
Antigüedad: 7 años, 3 meses
Puntos: 2
Respuesta: Que pasa con esto?

mysql_select_db($database_connection, $connection);

Al hacer la consulta siempre a la misma base de datos que lo pongas al principio del archivo sobra. Poner

mysql_query($query_clientes, $connection) or die(mysql_error());

Y esta te hace la consulta y si por algun motivo falla te avisara.
  #3 (permalink)  
Antiguo 03/02/2015, 10:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.318
Antigüedad: 11 años, 6 meses
Puntos: 2652
Respuesta: Que pasa con esto?

OFF TOPIC en Base de Datos.

Programación en cualquier lenguaje no es tema de los foros de BBDD.

Movido a PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 03/02/2015, 10:17
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.258
Antigüedad: 8 años
Puntos: 9
Respuesta: Que pasa con esto?

Gracias amigo pero quiero saber que pasa más halla osea si es a la misma base sobra, pero en que afecta a mi servidor ya en linea se hace más lento ????

la otra linea supongo q si es necesaria para conocer algun error...

pero necesito por favor que alguien me explique mas detalladamente
  #5 (permalink)  
Antiguo 03/02/2015, 10:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.318
Antigüedad: 11 años, 6 meses
Puntos: 2652
Respuesta: Que pasa con esto?

La creación de conexiones, así como la innecesaria realización de peticiones al DBMS redunda en consumo excesivo de consultas a la base (penalizado por los hosting), y exceso de tiempo de procesamiento.
Cada interacción de apertura de conexiones, y selección de base consume tiempo de transporte a la red, y tiempo consumido por cambios de estado. Eso redunda en pérdida de performance, entre otros problemas.
No es conveniente sobrecargar las conexiones con operaciones innecesarias. Es preferible verificar cual es la base abierta y si la conexión se encuentra activa, pero no mandar a seleccionar la base todas las veces sin necesidad.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 03/02/2015 a las 18:49
  #6 (permalink)  
Antiguo 03/02/2015, 10:25
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.258
Antigüedad: 8 años
Puntos: 9
Respuesta: Que pasa con esto?

Cita:
Iniciado por gnzsoloyo Ver Mensaje
La creación de conexiones, asi como la innecesaria realziacion de peticiones al DBMS redunda en consumo excesivo de consultas a la base (penzaklizado por los hosting), y exceos de tiempo de procesamiento.
Cada interacción de apertura de conexiones, y selección debase consume tiempo de tranbsporte a la red, y tiempo consumidopor cambios de estado. Eso redunda en pérdida de performance, entre otros problemas.
No es conveniente sobrecargar las conexiones con oepraciones innecesarias. Es preferible verificar cual es la bae abierta y si la conexión se encuentra activa, pero no mandar a seleccionar la base todas las veces sin necesidad.
GRACIAS gnzsoloyo amigo entiendo entonces que
mysql_select_db($database_connection, $connection);ESTA LINEA SOLO UNA VEZ
$query_clientes = sprintf("SELECT * FROM ...);
$clientes = mysql_query($query_clientes, $connection) or die(mysql_error()); ESTA si es necesaria, me queda duda con $connection me afecta en algo?????
$row_clientes = mysql_fetch_assoc($clientes);
  #7 (permalink)  
Antiguo 03/02/2015, 10:28
 
Fecha de Ingreso: mayo-2013
Mensajes: 171
Antigüedad: 6 años, 1 mes
Puntos: 4
Respuesta: Que pasa con esto?

No entiendo, que duda es esa de $conection??
  #8 (permalink)  
Antiguo 03/02/2015, 10:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 2 meses
Puntos: 2534
Respuesta: Que pasa con esto?

Cita:
Iniciado por Briss Ver Mensaje
[...] me queda duda con $connection me afecta en algo?????
¿Podrías hacerte un favor y revisar el manual?

http://php.net/manual/es/function.mysql-query.php

Ahí se explica cuales argumentos son obligatorios y cuales no, a partir de eso ya puedes determinar en cuanto afecta pasar o no la conexión, etc.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 03/02/2015, 10:34
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.258
Antigüedad: 8 años
Puntos: 9
Respuesta: Que pasa con esto?

Gracias pateketrueke
saludos
  #10 (permalink)  
Antiguo 03/02/2015, 11:47
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.258
Antigüedad: 8 años
Puntos: 9
Respuesta: Que pasa con esto?

Cita:
Iniciado por migue_coco Ver Mensaje
No entiendo, que duda es esa de $conection??

mysql_select_db($database_connection, $connection);ESTA LINEA SOLO UNA VEZ
$query_clientes = sprintf("SELECT * FROM ...);
$clientes = mysql_query($query_clientes, $connection) or die(mysql_error()); //MI DUDA PARA ESTA LINEA ES SE CREA UNA NUEVA CONEXIÓN A MI BD CON $connection????
$row_clientes = mysql_fetch_assoc($clientes);
  #11 (permalink)  
Antiguo 03/02/2015, 11:49
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 2 meses
Puntos: 2534
Respuesta: Que pasa con esto?

¿Si consultaste el manual?

Cita:
$clientes = mysql_query($query_clientes, $connection) or die(mysql_error()); //MI DUDA PARA ESTA LINEA ES SE CREA UNA NUEVA CONEXIÓN A MI BD CON $connection????
No, ahí no se crea una conexión, simplemente se reutiliza la conexión ya creada en $connection anteriormente.

¿Por qué tienes dudas si el manual dice claramente cómo funciona mysql_query()?

¿O en qué parte del manual que leíste decía que se crea una nueva conexión?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 03/02/2015, 11:56
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.258
Antigüedad: 8 años
Puntos: 9
Respuesta: Que pasa con esto?

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Si consultaste el manual?



No, ahí no se crea una conexión, simplemente se reutiliza la conexión ya creada en $connection anteriormente.

¿Por qué tienes dudas si el manual dice claramente cómo funciona mysql_query()?

¿O en qué parte del manual que leíste decía que se crea una nueva conexión?
Jejeje prefiero quedarme sin ninguna duda amigo...entonces con esta linea no hago una nueva conexión (no tendría problemas de saturar mi server, ya que solo llamo a un recurso ya existente)...

ammm de esto
$clientes = mysql_query($query_clientes, $connection) or die(mysql_error());

lo deje así
$clientes = mysql_query($query_clientes) or die(mysql_error()); //Borre $connection y las consultas siguen ejecutandose correctamente..

por enden supongo que no afecta en que las elimine, pero tampoco afecta su existencia????

saludos pateketrueke; y gracias mil por tu tiempo
  #13 (permalink)  
Antiguo 03/02/2015, 12:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 11 años, 2 meses
Puntos: 2534
Respuesta: Que pasa con esto?

Y lo has dejado peor.

Cita:
lo deje así
$clientes = mysql_query($query_clientes) or die(mysql_error()); //Borre $connection y las consultas siguen ejecutandose correctamente..

por enden supongo que no afecta en que las elimine, pero tampoco afecta su existencia????
¿De verdad no lees el manual?

El manual dice claramente que si omites la conexión se creará una, o bien, se reutilizará la última conexión creada:
Cita:
La conexión MySQL. Si el identificador de enlace no se especifica, el último enlace abierto por mysql_connect() es asumido. Si no se encuentra dicho enlace, la función intentará establecer un nuevo enlace como si mysql_connect() fuese invocado sin parámetros. Si no se encuentra o establece una conexión, un error de nivel E_WARNING es generado.
En fin, las dudas te las generas tu misma y sin sentido: sólo por no leer bien el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #14 (permalink)  
Antiguo 03/02/2015, 12:03
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.258
Antigüedad: 8 años
Puntos: 9
Respuesta: Que pasa con esto?

Cita:
Iniciado por pateketrueke Ver Mensaje
Y lo has dejado peor.



¿De verdad no lees el manual?

El manual dice claramente que si omites la conexión se creará una, o bien, se reutilizará la última conexión creada:


En fin, las dudas te las generas tu misma y sin sentido: sólo por no leer bien el manual.
GRACIAS AMIGO... tendré más cuidado

Etiquetas: bases-de-datos-general, bd, ejemplo, mysql
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 09:37.