Tengo un sitio en el cual estoy recibiendo algo de trafico y anteriormente mi forma de manejar las conexiones a MySQL tenian el procedimiento asi:
1) El script de conecta a la BDD.
2) Realiza la consulta (select, insert, update, etc...).
3) Cerraba la conexión.
4) Retornaba el resultado de la consulta.
Esto ahora veo me esta matando :'(... despues de cierto rato, noto que se alenta el sitio :'(, reinicio httpd y mysqld, y todo se normaliza.
Leyendo en internet encuentro con que se recomienda tener una conexion permanente y cerrar esta conexion cuando el usuario se vaya.
En mi caso, mi sitio es una plataforma que se muestra tras logearse, asi que intente esto (sin exito aun...).
funcion que conecta mysql
Código
function conectar() { $link= "ERROR"; $link= "ERROR"; return $link; # retornamos conexion }
Logeo y Desloqueo
Código
# cuando el usuario se LOGEA if( login($usuario, $pass) ) { $_SESSION["log_id"]= get_datauser( "id", $user, $pass ); # nos da el ID $_SESSION["mysql"]= conectar_bdd(); # retorna el ID de conexion } else # no se logeo con exito { reloadpage( "/" ); # recarga pagina } # cuando el usuario se DESLOGEA { }
Como se observa la variable $_SESSION["mysql"] la seteo con el ID de la conexión para ese usuario, pero resulta que dicha variable no guarda o nose que sucede, que despues en cierta parte de mi codigo cuando consulto la variable, tiene un valor 0 (cero).
Tal vez la manera en como quiero solucionarlo esta mal, estoy dispuesto en leer sus recomendaciones
OJO: ya lei sobre mysql_pconnect(), pero no quiero usarla porque ya esta marcada como obsoleto en php.net
Saludos !