| |||
![]() Tengo una duda. He hecho una primera conexión con el servidor y a una BD, almacenando el valor de la conexión en una variable global. Si, tras validar user/password, quiero hacer otra consulta, para q me muestre una serie de campos de una tabla en pantalla, tengop q volver a establecer la conexión, o puedo usar la variable q me he creado en la priemra conexión?? Es q haciendo ésto último me da un error, pero no sé si es porq no lo he usado bien o porq no se puede hacer así. |
| |||
Existen las conexiones persistentes (no sé que BD usas . .pero en general son del tipo): mysql_pconnect() www.php.net/mysql_pconnect Pero, la "persistencia" de la conexión lo hace Mysql internamente en función del "cliente" que pidió la consulta y demás .. Cara a PHP debes igualmente realizar la conexión (mysql_connect() o mysql_pconnect()). El caso es que será Mysql (si usas conexiones persistentes) el que decida si debe "autentificarse" nuevamente con ese usuario/contraseña o no .. Recuerda que si bien las conexiones persistentes te ahorran ese tiempo de "negociación" del usuario/contraseña para la autentificación .. no son ilimitados el n° de conexiones de este tipo .. Un saludo, Última edición por Cluster; 05/05/2005 a las 09:31 |
| ||||
__________________ |
| |||
Brffff !!! No he entendido mucho de lo q habéis comentado... :( Llevo MUY poco tiempo con PHP... Mi idea era guardar en una variable global el resultado de establecer la primera conexión con el servidor, esto es: ---conexion.php--- session_start(); $_SESSION['servconex'] = @mysql_connect("localhost", "root", ""); Y para conectarme a la BD: ---validar.php--- $bdconex = mysql_select_db("BD_INCIDENCIAS", $_SESSION['servconex']); // Valido los campo user/password Y de momento, esto último ya me da error. Lo que quería saber es, si más tarde, en otro .php quiero hacer una consulta a la BD, para q me muestre ciertos datos, puedo volver a usar la variable global $_SESSION['servconex']??? Lo he intentado pero no me sale, así q si sé q se puede hacer, seguiré intentándolo, pero si no, pues no!! Sería en un ejemplo así: ---listadoIncidencias--- $ssql = "SELECT * FROM INCIDENCIA ORDER BY PRIORIDAD DESC"; $rssql = mysql_query($ssql, $_SESSION['servconex']) or die(mysql_error()); Ésto último está en otro fichero distinto al de la conexión. ¿Puedo usar la misma conexión, usando la variable global? |
| |||
Si se puede... Si deseas seguir utilizando la misma conexión en distintos archivos lo q yo t recomiendo s q en un solo archivo tengas el código de tu conexión algo como esto: //Mi archivo de conexion.php <?php $bd_host = "localhost"; $bd_usuario = "root"; $bd_password = ""; $bd_base = "Mibasededatos"; mysql_connect($bd_host, $bd_usuario, $bd_password); mysql_select_db($bd_base); ?> //Mi otro archivo.php <?php require('conexion.php') . . . ?> Salu2 ![]() |
| ||||
En efecto... lo mejor es conectarse cada que vayas (y solo si vaz) a hechar mano de tu Base de Datos... y buena forma para no estar escribiendo en cada script las sentencias para conectarte, es lo que te menciona Ultra Violeta; crear un "archivo de conexión" y llamarlo cada que vayas a usarlo con include() ó require(). www.php.net/include www.php.net/require ![]()
__________________ ٩(͡๏̯͡๏)۶ "100 años después, la revolución no es con armas, es intelectual y digital" |
| |||
No, .. por una sesión no puedes propagar un Identificador de conexión a una BD .. Si que podrías como ya te han comentado .. usar conexiones persistentes y siempre tener tu código de conexión (persistente o no) en un archivo a parte que llames por un include() en todos tus scritps que requieran de BD). El motor de BD ya se encargará de "autentificar" o no si es necesario (si se perdió la conexión .. etc). Un saludo, |