Just because the PHP interpreter will allow 'unlimited' database connections. doesn't mean that the database engine will...
This can be especially troublesome when many sites share a common database server. If you have access to the database via a shell, get the status from the database engine:
mysql>\s;
It'll return information about the current state of the database server, number of current connections, etc. If your site shares a common database engine with other sites on the same server... welll... move to a server where you have your own instance of the database.
Try connecting without using mysql_connect(), (not mysql_pconnect()), and explicitly closing every connection resource with mysql_close() and see if that helps any.
Have fun.