when php finishes a script, it's supposed to close the connection automagically, in the case of non-persistant connections, and to "put it back in the pool when it's done with it" for persistant connections.
So, since these are non-persistant, then you either have a lot of folks on your system, say 5 to 20 times the number of users as required current simos (i.e. max number of httpds in use 'ps aux|grep httpd|wc -l' minus the number of min spares gives you a good guess.
Or, the connections aren't closing like they should. It could be that something in your php code is making the script hang and die or something. Ever have any pages that just didn't come up, but did after a refresh? A lot of those can hold open a connection a long time. You can try grabbing your data with a "wrapped" db access that opens and closes each connection for a single query. Like
openconnection;
doquery;
closeconnection;
But if the backends are hanging, then closing the connection may not help.
Reduce connection and keep alive time outs in apache to help, increase the max number of mysql backends to something you can handle with mem+swap, and check the connection and script timeout values you get from a phpinfo() command, you can edit the php.ini to change them to something short.
Since most hung processes show little/no activity, a big fast swap file will let the system swap them out of active memory quickly enough to keep them from becoming an issue. Keep an eye on memory usage if you're in fact "leaking" db connection handles, and you can probably throw in a: kill -2 pgrep httpd to force all apache children to gracefully stop and drop all the mysql children.
Then mysql a restart to force it to drop buffers and come back up. then restart the web server with '/path/to/httpd' and you're in business. This is common practice on persistant connection machines to ensure stability, especially if some unkown component on the machine is known to be dodgy. I used to have to do this for postgresql 6.5.3, but haven't since 7.0.0
Check your version of mysql for known bugs that could cause this and upgrade to the latest production version if you can. Same goes for php and apache, natch.