我有一个处理数据库连接的函数。在casse我的主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_ * 我的第一台服务器当前已关闭,我收到'警告:mysql_connect()[function.mysql-connect]:太多连接...'错误
实际上我的问题是,如果第一次连接失败,我不需要打印此警告消息......
答案 0 :(得分:2)
请注意不推荐使用Mysql_ *,使用更安全的mysqli_或PDO。
您是否尝试过输出错误?我在你的代码中没有看到它。
我很长时间没有使用mysql _ ,但尝试使用以下方法输出错误:* mysql_error()
如上所述,可能存在各种问题:
编辑: 此外,您可能需要考虑为DB故障等事件设置重新设置。
答案 1 :(得分:1)
请勿在您的代码中执行此操作,只需使用类似MySQL Proxy的内容即可为您执行此操作。
答案 2 :(得分:0)
当php无法连接时,它会生成一个警告,停止执行php。 您可以使用@mysql_connect(函数名称前缀为“@”)来避免警告。即使第一个sql server没有响应,你的代码也会继续执行。蹩脚,但工作。