-2

データベース接続を処理する関数があります。メイン DB が使用できない場合に備えて、バックアップを使用したいと考えています。以下のコードを使用してそうしようとしましたが、機能していません...

$host = 'xxx';
$database = 'xxx';
$login = 'xxx';
$pass = 'xxx';

if (! mysql_connect( $host, $login, $pass ) )
{
    // try to connect to backup db
    $host = 'yyy';
    $database = 'yyy';
    $login = 'yyy';
    $pass = 'yyy';
mysql_connect ( $host, $login, $pass ) or die ( "Failed to connect to the database: " . mysql_error());
}
mysql_select_db ( $database ) or die ( "Failed to find the database" . mysql_error());
mysql_query("SET NAMES 'utf8'");

接続パラメーターについては確かなので、問題はありません

編集: 古いバージョンの php を使用しているため、Mysql_* に制限されています...' エラー

実際、私の問題は、最初の接続が失敗した場合にこの警告メッセージを出力する必要がないことです...

4

3 に答える 3

2

Mysql_* は非推奨であることに注意してください。より安全な mysqli_ または PDO を使用してください。

エラーを出力してみましたか?あなたのコードには表示されません。

mysql_を長い間使用していませんが、次を使用してエラーを出力してみてください:*mysql_error()

前述のように、さまざまな問題が考えられます。

  • Mysqlが起動していません
  • ファイアウォールが接続をブロックしています
  • デフォルトポートを使用しない
  • ...

編集:また、DB障害などのイベントの複製の設定を検討することもできます。

于 2013-09-27T15:06:00.963 に答える
1

コードでこれを実行しないでください。MySQL Proxyなどを使用して実行してください。

于 2013-09-27T14:57:58.347 に答える