2010-01-02 62 views
1

数据库中获取成功连接....但... 是我的代码服务器在这里disconneting数据库

<?php 
$host = 'localhost'; 
$user = 'root'; 
$pass = ''; 
$db = 'databasename'; 

mysql_connect($host, $user, $pass) or die ("Database Not Connected"); 
mysql_select_db($db) or die ("Database Not Fount"); 

?> 

但数据库定期断开和30-40分钟后连接....请帮助我,那是怎么回事.....

+0

这种断开是如何表达自己的?你有错误信息吗?是否有任何会议管理参与? – 2010-01-02 19:37:47

+0

“,但数据库在30-40分钟后定期断开连接” - 此声明没有多大意义。你的意思是你的PHP客户端脚本运行时间超过30分钟吗? 这是一个专用DBMS还是共享主机?你检查过DBMS日志文件吗? 什么是MySQL客户端和DBMS的配置?当它开始放弃时,有多少cnxns? MySQL是否与PHP代码运行在同一台机器上,或者它们之间可能存在防火墙?你是否正在付钱给某人提供/支持这项服务? ......还有一百个问题。 C. – symcbean 2010-01-02 23:52:35

回答

3

不要忘记关闭与mysql_close()连接。

太多的连接会导致问题,因此可能会解释您的断开连接。

+0

我需要关闭每个查询后的连接....... ?? – 2010-01-02 19:55:27

+0

在脚本的最后,testkhan。 – Sampson 2010-01-02 19:55:59

+1

从手册(http://php.net/manual/en/function.mysql-close.php):通常不需要使用mysql_close(),因为非持久性的打开链接会在结束时自动关闭脚本的执行。 – naivists 2010-01-02 19:58:04

1

这可能是混淆变量的问题。您的连接和数据库选择不应与将在稍后运行的查询混淆。

$conn = mysql_connect($host, $user, $pass) or die(mysql_error()); 
     mysql_select_db($db) or die(mysql_error()); 

$query = "SELECT id, username FROM users"; 

在这个例子中,$conn不会被用于引用比我的资源以外的任何其他。我的查询在稍后运行,将被称为$query,以免我自己混淆。

我还建议您观看查询的执行时间以及打开的并发连接数。如果您需要,请务必关闭您的连接:

mysql_close($conn); // note the importance of a unique variable here