0

一切正常,它只是决定停止工作,它毁了我的整个项目,我处于停滞状态。

这是错误:

mysql_close(): 5 不是第 4 行 C:\wamp\www\Includes\footer.php 中的有效 MySQL-Link 资源

这是footer.php

<?php
//close connection
if (isset($dbh)); {
    mysql_close($dbh);
}
?>

这是connect.php

//set constants
require("quick.php");

//database connection
$dbh = mysql_connect(DB_SERVER, DB_USER, DB_PASS);
if (!$dbh) {  //check connection
        die("Cannot conect! to database ");
    }   

//selecting database
$db_select = mysql_select_db(DB_NAME, $dbh);
if (!$db_select) { //check connection
        die("Cannot connect to database ");
    }
?>

基本上每当我尝试退出 mysql 时,都会显示此错误。不久前一切都很好。

4

3 回答 3

2

试试这个:

if (isset($dbh) && is_resource($dbh)) {
    mysql_close($dbh);
} else {
    mysql_close();
}

从手册:

mysql_close() 关闭与指定链接标识符关联的 MySQL 服务器的非持久连接。如果未指定 link_identifier,则使用最后打开的链接。

也许他的联系很少..谁知道..

于 2012-10-24T17:05:46.897 回答
0

某处,在您的页面中,有一个分配$dbh = 5;覆盖您的数据库连接。这就是错误的原因。在数据库打开和页脚之间搜索对该变量的任何分配,您就发现了问题。


注意:我不会像这里的其他评论者那样担心连接是打开的,因为如果它不是持久连接,它无论如何都会在脚本末尾关闭,所以我不明白那会怎样毁了你的整个项目。您的代码尝试在页脚处关闭它,这与让它自行关闭没有太大区别。从手册

通常不需要使用 mysql_close(),因为非持久打开的链接会在脚本执行结束时自动关闭。另请参阅释放资源

于 2012-10-24T19:46:50.637 回答
-1

mysql_*如果您不指定连接,所有功能将假定“您打开的最后一个连接”。这很有用,因为您不必像对其他库那样跟踪它。$dbh很可能在这里您正在某处覆盖变量。就我个人而言,我会使用一个变量,就像我完全使用一个变量一样$_connection

所以就mysql_close()足以关闭连接。如果您一次处理多个连接,则只需要担心这种事情。

于 2012-10-24T17:04:42.900 回答