PHP - conexion a BD

   
Vista:
Imágen de perfil de siREZ

conexion a BD

Publicado por siREZ sirez2@hotmail.com (201 intervenciones) el 25/06/2012 18:04:50
Cordial Saludo.

es posible crear conexiones a la base de datos en el servidor, de una manera variable, que cambien acorde a lo que se necesita en un script? utilizando variables de session?

ejemplo


<?php session_start();
$hostname_myconex = "localhost:3306";
$database_myconex = $_SESSION['bd_servidor'];
$username_myconex = $_SESSION['usu_servidor'];
$password_myconex = $_SESSION['pass_servidor'];
$myconex = mysql_pconnect($hostname_myconex, $username_myconex, $password_myconex) or trigger_error(mysql_error(),E_USER_ERROR);
?>

o el servidor no acepta este tipo de conexiones. Logicamente que las variableas de session llevan los correspondientes valores para la debida conexion....

gracias


siREZ
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

conexion a BD

Publicado por xve (5518 intervenciones) el 25/06/2012 19:05:28
Hola siREZ, sin ninguna problema, incluso puedes indicar que cambie el servidor de base de datos... lo que creo que no podrás tener de manera simultanea, son dos conexiones a diferentes bases de datos a la vez.v

Lo probé hace tiempo, y creo que no se podía... aunque todo esto cambia muy rápidamente...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de siREZ

conexion a BD

Publicado por siREZ sirez2@hotmail.com (201 intervenciones) el 25/06/2012 22:51:32
de nuevo, gracias por tu pronta respuesta.

lo ensayè y funciona muy bien.

<?php session_start();
$hostname_myconexion = "localhost:3306";
$database_myconexion = $_SESSION['bd_servidor'];
$username_myconexion = $_SESSION['usu_servidor'];
$password_myconexion = $_SESSION['pass_servidor'];
$myconexion = mysql_pconnect($hostname_myconexion, $username_myconexion, $password_myconexion) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_myconexion, $myconexion);
$query_Recordset1 = "SELECT * FROM mi_tabla WHERE activo = 'S'";
$Recordset1 = mysql_query($query_Recordset1, $myconexion) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
echo $row_Recordset1['nombre'];exit;?>

Tengo una duda, pero es como de CONCEPTO o FUNCIONAMIENTO del php o MySQL y es la siguiente, a ver si me la puedes aclarar.
El motivo para hacer esto es que hice un script para un cliente, se logea y almacena y consulta una base de datos que tiene 54 columnnas y al rededor de 20.000 filas o registros.
Hasta aqui todo bien.
Tengo la posibilidad de ampliar el numero de clientes a unos 1200
osea que la Tabla que van a consultar (esos 1200 clientes) quedaria con unos 24.000.000 de registros y considero que hacer una consulta a esta tabla de esta magnitud tardaría un tiempo grande.
la idea seria reagrupar a esos 1200 clientes en unas 100 Bases de datos con nombre de usuario y contraseñas de acuerdo a su numero de identificacion, de manera que la Tabla a consultar disminuye su tamaño considerablemente y logicamente su tiempo de acceso a las consultas.

¿esto es viable?, esta bien asì como lo pienso? o hay otra manera de hacerlo?

Otra duda.

el script es uno solo que utilizarian los 1200 clientes (Claro que no todos a la vez) pero si unos 400 a 750 al mismo tiempo, el cual al logearsen los llevaria a su correspondiente Base de Datos de acuerdo al numero de identificacion. Un grupo de clientes a una BD, otro grupo a otra BD, y asi sucesivamente.

las variables de session son diferentes para cada grupo y generan el acceso a la BD del servidor para cada grupo en forma variable.

Pregunta: ¿Hay limites para el numero de variables de session?

¿Pueden acceder por ejemplo 750 clientes diferentes desde el mismo script en lugares diferentes a un mismo tiempo a la BD del Servidor?

El servidor se colgaría????

Espero me haya hecho entender y quisiera su concepto y sugerencia para hacer las cosas bien.

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

conexion a BD

Publicado por xve (5518 intervenciones) el 25/06/2012 23:38:29
Hola siREZ, te comento...

Sobre lo que me comentas de la base de datos, cuando vas a manejar tantos datos, mySQL tiene un tipo de tabla denominado MERGE, que engloba varias tablas, aunque tu únicamente trabajes con la tabla MERGE, el internamente trabaja con las tablas que le hayas indicado.

Puedes realizas pruebas de rendimiento con la instrucción mysqlsdap.

Sobre tu pregunta de rendimiento, dependerá de muchos factores, características de cada servidor, ubicación de la base de datos, cluster de servidores, etc... es muy difícil de decir... pero sin ninguna duda, 700 clientes, no son tantos.... no deberías de tener mayor problema.

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de siREZ

conexion a BD

Publicado por siREZ sirez2@hotmail.com (201 intervenciones) el 26/06/2012 00:59:14
gracias de nuevo.
la preocupacion no es sobre los 700 clientes que pueden logearse sino sobre las consultas que realicen a una Tabla con 24 millones de registros.

Voy a consultar sobre MERGE y mysqlsdap

siREZ
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar