共享托管提供商通常允许同一用户同时进行少量连接。
你的代码的作用是:
- 打开与 MySQL 服务器的连接
- 做它的事情(生成页面)
- 在页面末尾关闭连接。
最后一步,在页面末尾完成时不是强制的:(引用mysql_close http://php.net/mysql_close的手册):
通常不使用 mysql_close()
必要的,作为非持久开放
链接会自动关闭
脚本执行结束。
但请注意,无论如何您可能不应该使用持久连接......
两个提示:
- use
mysql_connect
代替mysql_pconnect
(对你来说已经可以了)
- 将mysql_connect的第四个参数设置为false(对你来说已经没问题了,因为它是默认值):(引用手册):
如果第二次拨打电话
mysql_connect() 与此相同
参数,不会有新的链接
已建立,但链接
已打开链接的标识符
将被退回。
新的_链接
参数修改此行为并且
使 mysql_connect() 总是打开一个
新链接,即使 mysql_connect() 是
之前用同样的方式调用过
参数。
那么什么可能导致问题呢?
也许您正在尝试并行访问多个页面(例如,在浏览器中使用多个选项卡),这将模拟多个用户同时使用该网站?
如果您有许多用户同时使用该网站并且之间的代码mysql_connect
并且关闭连接需要很长时间,这意味着同时打开许多连接......并且您将达到限制:-(
尽管如此,由于您是该应用程序的唯一用户,考虑到您最多允许同时连接 200 个,所以会发生一些奇怪的事情......
嗯,想想“太多联系" and "max_connections
"...
如果我没记错的话max_connections
不限制连接数you可以打开MySQL服务器,但是连接总数可以打开该服务器,由任何连接到它的人.
引用 MySQL 的文档太多联系 http://dev.mysql.com/doc/refman/5.0/en/too-many-connections.html :
如果您收到“连接数过多”
当您尝试连接到时出错
mysqld 服务器,这意味着所有
可用连接正在被使用
其他客户。
允许的连接数为
由 max_connections 控制
系统变量。它的默认值为
100. 如果需要支持更多的连接,应该设置更大的值
该变量的值。
所以,实际上,问题可能不是来自你或你的代码(实际上看起来不错):可能“只是”您不是唯一尝试连接该 MySQL 服务器的人(记住,“共享主机”),而且有太多人同时使用它......
... And 如果我是对的那就是,您无法解决该问题:只要该服务器上有太多数据库/用户,并且该服务器上有太多数据库/用户max_connection
设置为200,你将继续受苦......
作为旁注:在返回 GoDaddy 询问他们这个问题之前,如果有人能够验证我刚才所说的话,那就太好了 ^^