页面中未找到页面错误

时间:2012-07-18 12:08:19

标签: php

以下基本代码按预期工作。

<?php
mysql_connect("localhost", "user", "user@123") or die(mysql_error());
echo "Connected to MySQL<br />";
?>

我需要的是,而不是mysql_error,应该返回页面未找到404错误。 我正在寻找最短的代码,因为它将用作负载均衡器检查。

以下似乎不起作用。我得到一个空白页。

mysql_connect("localhost", "user", "user@123") or die(header("HTTP/1.0 404 Not Found"));

4 个答案:

答案 0 :(得分:1)

mysql_connect will return a false value if the connection was not successful.

$connected = mysql_connect("localhost", "user", "user@123");
if (!$connected){
  header("HTTP/1.0 404 Not Found");
}

不确定您使用此代码到底是什么 - 但无法连接到您的数据库并不一定意味着找不到请求的页面 - 它也可能是您的SQL Server服务器的问题。


作为旁注 - 避免使用过时的mysql_ *函数。将它们用于新代码非常重要 discouraged。 提供更现代化的替代品并进行更好的维护 考虑学习一下 prepared statements 而是使用其中之一 PDO or MySQLi。 严格使用时,避免繁琐且手动逃逸的部分, 因此变得更容易,并且副产品更安全。 请参阅a PDO tutorial了解。

答案 1 :(得分:1)

使用mysqli或PDO,mysql_ *将获得折旧

$link =mysql_connect("localhost", "user", "user@123");
if (!$link) {
    header("error.php");
}
echo 'Connected successfully';

答案 2 :(得分:1)

我会做以下事情:请记住我使用的是mysqli,强烈建议不要使用mysql_ *。

$mysqli = new mysqli('localhost', 'user', 'password', 'dbname');

if ($mysqli->connect_error) {
    header("HTTP/1.0 404 Not Found");
} else {

}

你确定你想要返回404,这是误导的,因为找到了资源,我将返回500错误作为服务器错误,这将更合适。

有关HTTP状态代码的列表,请参阅here

答案 3 :(得分:1)

我只是做一个if检查并返回500错误,因为如果google尝试查看索引页面,当你连接失败并把它扔回404时,它会认为你的网站坏了,你将失去排名和链接到该页面。

500将至少表明存在服务器问题,但它将被修复:

if(!mysql_connect('localhost', 'user', 'pass')){
    header('HTTP/1.1 500 Server error');
    exit();
}