Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当数据库出现故障或我想永久断开数据库连接时,如何将用户重定向到404页?_Php_Mysql - Fatal编程技术网

Php 当数据库出现故障或我想永久断开数据库连接时,如何将用户重定向到404页?

Php 当数据库出现故障或我想永久断开数据库连接时,如何将用户重定向到404页?,php,mysql,Php,Mysql,我想永久断开我的一个数据库的连接,连接到这个数据库,我使用以下代码: $conn = mysql_pconnect($dbhost, $dbuser, $dbpass) or die ('Error connecting to database,please refresh your page.'); mysql_select_db($dbname); 请让我知道如何才能在这种情况下做到最好(永久断开db),当用户来自搜索引擎时,将其重定向到404页面。您可以使用PHP中的die()函数来这

我想永久断开我的一个数据库的连接,连接到这个数据库,我使用以下代码:

$conn = mysql_pconnect($dbhost, $dbuser, $dbpass) or die ('Error connecting to database,please refresh your page.'); 
mysql_select_db($dbname);

请让我知道如何才能在这种情况下做到最好(永久断开db),当用户来自搜索引擎时,将其重定向到404页面。

您可以使用PHP中的
die()
函数来这样做

mysqli_connect("localhost","root","","db_name")or die(require("404.php"));

这将尝试连接到您的数据库,如果失败,将需要另一个文件,您还可以创建一个重定向用户的函数,并将其粘贴到
die()函数中,然后将用户重定向到另一个页面,这就是在连接出错时发送用户的方式。

您无法关闭持久的mysql连接,这是连接脚本(
mysql\pconnect
)。至少你不能从PHP关闭它。唯一的方法是重新启动mysql服务器。您需要从cmd获得类似的内容:

sudo service mysql restart 
现在,在重新启动mysql之后,您的持久连接将被断开。如果您的目标是永久断开连接,那么现在您只需要确保连接脚本不再运行

关于404重定向,您可以在脚本顶部使用以下内容:

header("HTTP/1.0 404 Not Found");
如果希望将用户发送到自定义404页面,可以使用:

header("HTTP/1.0 404 Not Found");
include_once("404.html");
exit();
*注意:对于mysqli,如果您使用的是php7,似乎有一种方法可以清除PHP中的持久连接,请参阅:


我建议将用户重定向到另一个404页,使用下面的代码:

mysql_pconnect("localhost","root","","db_name")or die(header('Location: URL/404.php'));

您可以将
http\u响应\u代码(404);退出位于页面顶部,或使用htaccess永久重定向。你的问题我还不太清楚。你的一个数据库是什么意思?你使用的是php 5还是php 7?那么你是同时停用整个php应用程序吗?我在我们的网站上使用php5。我们的网站上有2个数据库,希望永久断开其中一个数据库的连接。好的,但数据库不能通过http请求直接访问,那么,你是说你的网站上有一些单独使用该数据库的页面,如果有人访问这些页面,你希望所有这些页面都返回404?我使用PHP5,目前我无法更改mysql版本。你能重新启动mysql服务吗?你重新启动mysql的意思是什么?因为你的连接代码使用“mysql\u pconnect”,与数据库的连接将始终保持打开状态,除非在服务器上重新启动mysql服务,或者当然也可以重新启动服务器。因此,基本上,我只是说这是唯一可以真正断开数据库连接的方法。使用其他答案,您将阻止用户查询数据库,但服务器上仍然存在与数据库的活动连接。看看我用的是mysql而不是mysql我能用你的mysql代码吗?谢谢,没问题。