0

次の基本的なコードは期待どおりに機能しています。

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

必要なのは、mysql_error の代わりに、page not found 404 エラーが返されることだけです。これはロードバランサのチェックとして使用されるため、可能な限り短いコードを探しています。

以下はうまくいかないようです。空白のページが表示されます。

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

4 に答える 4

1

mysqliまたはPDOを使用すると、mysql_*は減価償却されます

$link =mysql_connect("localhost", "user", "user@123");
if (!$link) {
    header("error.php");
}
echo 'Connected successfully';
于 2012-07-18T12:12:56.827 に答える
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ステータスコードのリストについては、こちらをご覧ください

于 2012-07-18T12:13:22.123 に答える
1

接続に失敗して404をスローバックしたときに、Googleがインデックスページを表示しようとすると、サイトが壊れていると見なされ、ランキングとそのリンクが失われるため、ifチェックを実行して500エラーを返します。ページ。

500は、少なくともサーバーに問題があることを示しますが、修正されます。

if(!mysql_connect('localhost', 'user', 'pass')){
    header('HTTP/1.1 500 Server error');
    exit();
}
于 2012-07-18T12:13:43.707 に答える
1

mysql_connect接続が成功しなかった場合は false の値を返します。

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

このコードを何に使用しているのか正確にはわかりませんが、データベースに接続できないからといって、要求されたページが見つからなかったとは限りません。SQL サーバーの問題である可能性もあります。


補足として、古い mysql_* 関数の使用は避けてください。これらを新しいコードに使用することは お勧めできません。より近代的な代替手段が利用可能であり、より適切に維持されています。 代わりに 準備済みステートメントについて学ぶことを検討 し、 PDO または MySQLiのいずれかを使用してください。厳密に使用すると、面倒で手動のエスケープ部分が回避されるため、ヒープがより簡単になり、副産物としてより安全に使用できます。開始については、PDO チュートリアルを参照してください。

于 2012-07-18T12:10:28.110 に答える