以下基本代码按预期工作。
<?php
mysql_connect("localhost", "user", "user@123") or die(mysql_error());
echo "Connected to MySQL<br />";
?>
我所需要的是,应该返回pagenotfound 404错误,而不是mysql_error。我正在寻找尽可能短的代码,因为这将被用作负载均衡器检查。
以下内容似乎不起作用。我收到一张空白页。
mysql_connect("localhost", "user", "user@123") or die(header("HTTP/1.0 404 Not Found"));
我会做以下事情:记住我使用的是mysqli,强烈建议使用mysql_*。
$mysqli = new mysqli('localhost', 'user', 'password', 'dbname');
if ($mysqli->connect_error) {
header("HTTP/1.0 404 Not Found");
} else {
}
不过,你确定要返回404吗,这是误导性的,因为已经找到了资源,我会将500错误作为服务器错误返回,这更合适。
有关HTTP状态代码的列表,请参阅此处
mysql_connect
将返回一个错误值。
$connected = mysql_connect("localhost", "user", "user@123");
if (!$connected){
header("HTTP/1.0 404 Not Found");
}
不确定您使用此代码的确切目的——但无法连接到数据库并不一定意味着找不到请求的页面——这也可能是sql server的问题。
顺便说一句,避免使用过时的mysql_*函数。将它们用于新代码是非常重要的气馁。有更现代化的替代品可供选择,并得到更好的维护。考虑学习准备好的报表而是使用PDO或MySQLi。当严格使用时,它们避免了繁琐和手动的脱离部分,因此变得更容易堆积并且作为副产品使用更安全。请参阅PDO教程以开始。
使用mysqli或PDO,mysql_*将获得折旧
$link =mysql_connect("localhost", "user", "user@123");
if (!$link) {
header("error.php");
}
echo 'Connected successfully';
我只会做一个if检查并返回一个500错误,因为如果谷歌在你连接失败时试图查看索引页面并将其返回404,它会认为你的网站已损坏,你将失去该页面的排名和链接。
500将至少显示存在服务器问题,但它将被修复:
if(!mysql_connect('localhost', 'user', 'pass')){
header('HTTP/1.1 500 Server error');
exit();
}