mysql\u close():5不是第4行C:\wamp\www\Includes\footer.php中的有效mysql链接资源
一切都很好,它只是决定停止工作,它毁了我的整个项目,我处于停滞状态 这是一个错误: mysql_close():5不是中的有效mysql链接资源 第4行C:\wamp\www\Includes\footer.php 这是mysql\u close():5不是第4行C:\wamp\www\Includes\footer.php中的有效mysql链接资源,php,mysql,hyperlink,Php,Mysql,Hyperlink,一切都很好,它只是决定停止工作,它毁了我的整个项目,我处于停滞状态 这是一个错误: mysql_close():5不是中的有效mysql链接资源 第4行C:\wamp\www\Includes\footer.php 这是footer.php <?php //close connection if (isset($dbh)); { mysql_close($dbh); } ?> //set constants require("quick.php"); //database
footer.php
<?php
//close connection
if (isset($dbh)); {
mysql_close($dbh);
}
?>
//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时,就会出现这个错误。
不久前,它还可以正常工作。如果不指定连接,所有的
mysql.*
函数都将假定为“上次打开的连接”。这很有用,因为您不必像其他库那样跟踪它。很可能您正在覆盖某个地方的变量$dbh
。就个人而言,如果我使用一个变量,我会使用一个变量,比如$\u connection
所以只要mysql\u close()
就足以关闭连接。如果一次处理多个连接,则只需担心这种情况。请尝试以下方法:
if (isset($dbh) && is_resource($dbh)) {
mysql_close($dbh);
} else {
mysql_close();
}
从手册:
mysql_close()关闭与mysql服务器的非持久连接
与指定的链接标识符关联的。如果
未指定链接标识符,使用最后打开的链接
也许他没有什么关系。。谁知道呢?在你的页面中的某个地方,有一个作业将
$dbh=5覆盖数据库连接的代码>。这就是错误的原因。在数据库打开和页脚之间搜索该变量的任何赋值,您就找到了问题所在
注意:我不会像这里的其他评论者那样担心连接被打开,因为如果它不是一个持久的连接,它将在脚本结束时被关闭,所以我不认为这会破坏你的整个项目。您的代码尝试在页脚处关闭它,这与让它自己关闭没有多大区别。发件人:
使用mysql_close()通常不是必需的,因为它是非持久性打开的
链接在脚本执行结束时自动关闭。
另见
footer.php中的$dbh
——它是如何链接到您使用mysql\u connect创建的文件的?在这个过程中,必须为$dbh变量赋值。显示更多代码。使用var_dump获取$dbh的确切值?我同意@JvdBerg所说的。mysql连接将在脚本结束时自动关闭。如果你不明确地关闭它,我看不出这会毁掉你的整个项目。您的实际问题是什么…?很好的选择,但是如果连接是打开的,但是$dbh不再指向它,那么用户仍然会在某个地方有一个打开的连接。可能会添加一个else{mysql_close();}