我正在使用MySQL 5.0作为由GoDaddy(linux)托管的站点.
我正在对我的网络应用程序进行一些测试,突然间我注意到页面刷新的速度非常慢.最后,经过漫长的等待,我得到了一个页面,上面写着"MySQL错误,连接太多......"的内容,它指向我连接数据库的config.php文件.
它只是我连接到数据库,没有其他用户.在我的每个页面上,我在顶部包含config.php文件,并关闭页面末尾的mysql连接.两者之间可能存在多个查询.我担心我没有足够关闭mysql连接(mysql_close()).
但是,当我在运行查询后尝试关闭它们时,我在页面上收到连接错误.我的页面是PHP和HTML.当我尝试关闭查询时,似乎下一个查询将无法连接.我必须在关闭后再次包含config.php才能连接吗?
这个错误吓到了我,因为在2周内,大约有84人开始使用这个Web应用程序.
谢谢.
编辑:
这是我的页面的一些伪代码:
require_once('../scripts/config.php');
<?php
mysql_query..
if(this button is pressed){
mysql_query...
}
if(this button is pressed){
mysql_query...
}
if(this button is pressed){
mysql_query...
}
?>
some html..
..
..
..
..
<?php
another mysql_query...
?>
some more html..
..
..
<?php mysql_close(); ?>
Run Code Online (Sandbox Code Playgroud)
我想通过这种方式,每次页面打开时,连接都会打开,然后在页面加载完成后关闭连接.然后,当有人单击页面上的按钮时,连接再次打开,依此类推......
编辑:
好的,所以我刚刚和GoDaddy通电话.显然,通过我的经济套餐,我一次只限50个连接.虽然今天我的问题发生在只有我访问该网站时,他们说他们之前遇到了一些服务器问题.然而,看到我将如何为我的网络应用程序拥有84个用户,我应该升级到"Deluxe",它允许一次100个连接.在某一天,可能有大约30个用户一次访问我的网站,所以我认为100将是一个更安全的赌注.你们同意吗?
在mysqli准备好的陈述中mysqli_stmt::close()(关闭准备好的陈述):
$stmt->close();
Run Code Online (Sandbox Code Playgroud)
我搜索过php.net和网络,找不到PDO的替代方案.
这可能吗?
在每个脚本的末尾使用它有什么好处?
我明白那个,
$connection = null;
Run Code Online (Sandbox Code Playgroud)
关闭与mysql的连接,但关闭查询呢?