J'ai pas dit "ouvrir et fermer entre chaque requête"
Ensuite ton code est très mauvais, pourquoi ?
bah parce que tu ouvres la connexion, tu fais les requêtes et tu
traites les requêtes la connexion ouverte ce qui entraîne plus
facilement un problème de max_user_connections, alors que le problème
posé est justement un problème de max_user_connections
Mettons que ta page avec ton code mette 3 secondes à se générer (c'est
possible si le code est crade ou le serveur surchargé) et que parmis
ces 3 secondes, il faut 500ms à mysql pour traiter les requêtes. Le
max_user_connections est mettons de 5.
dans ton cas, la connexion dure 3 secondes. Il suffit que 5 visiteurs
consultent une page en même temps (ou avec un décalage de 3 secondes
max) pour que le script tombe, bref ça nous fait même pas 5
utilisateurs maxi par seconde.
Dans l'autre cas, les requêtes durent 500 ms (c'est encore excessivement crade mais c'est volontaire)
Bref la connexion dure 500 ms, tu peux accueillir par seconde 10 visiteurs simultanés sans problème.
Ensuite si tes requêtent durent 100 ms ce qui est largement faisable, tu peux accueillir 100 visiteurs simultanés sans problème.