为了解释,我将代码划分为子部分:(相同范围)
<?php
### part 1
connect_db(); // My db connection function - works fine
### part 2
/* lot of code without closing mysql connection - these lines works fine too */
### part 3
/* lot of statements like the following */
if( $statement ){
/* some code */
mysql_close();
exit;
}
### part 4
/* and after 2400 lines */
$query = mysql_query("SELECT row FROM table_name WHERE row = 'some_condition'");
while ( $fetch = mysql_fetch_object( $query ) ) {
$myObj = mysql_fetch_object(mysql_query("SELECT row FROM table_name WHERE row = 'some_condition'"));
}
?>
在第1,2和3部分,任何尝试连接到db都将成功。非常重要的是, mysql_close()
会立即被exit
取代。
在第4部分,尝试连接到db将在mysql_query
内的while
内提供以下结果 - [EDIT] :
mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO)...
一旦我在许多文件中长时间遇到此问题并且我的代码中没有任何错误,这不是一个孤立的案例。
我的 PHP版是 5.2.3 和 Apache 2.2.4(Win32)
任何人都知道造成这种情况的原因是什么?断线&#39;几行代码后没有明确的命令来关闭连接?
答案 0 :(得分:0)
根据我的理解
您可以使用mysql_ping()函数测试连接的状态,并在返回false时重新连接。
基于此,您可以在PHP代码中处理它。