Es un error de programación: Hacer un loop donde se abren y cierran conexiones a la base es una pésima práctica, ya que los recursos de las conexiones no se liberan realmente con tanta rapidez, y eventualmente el pool de conexiones se satura.
Tanto en Windows como en el host donde se encuentre el servidor, las conexiones tardan en desaparecer del pool; además, los webhosting no te dan acceso a conexiones en forma infinita, porque eso consume recursos.
¿Nunca escuchaste hablar de los ataques por
denegación de servicios (DoS)? Bueno, precisamente eso es lo que estás haciendo en una escala pequeña... como cada conexión se declara en el sistema como proveniente de un user a través de una conexión, y las anteriores no están efectivamente liberadas, bueno, el sistema colapsa.
Este tipo de técnicas recibe el nombre de SYN FLood e ICMP Flood.
Lo que debes hacer es abrir una sola conexión por sesión y realizar todas las consultas con ella. No abrir secuencialmente conexiones. En todo caso lo que debes liberar son los recursos de la
consulta.
Cita: Y otra duda, ¿Qué diferencia hay en la conexion tradicional de mysql_connect() en PHP y
mysql://usuario:password@localhost/base_de_datos?
Esos son temas de implementación de librerías, programación de conectores.
Además, ¿a qué te refieres con "
mysql://usuario:password@localhost/base_de_datos"? ¿A la conexión por consola?