以下基本代码按预期工作。
<?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"));
答案 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();
}