Php 处理连接错误MySqli
我试图简化我的mysqli,如果出现连接错误,我使用if和else,如果连接失败,则转到else。但这样我必须添加两个查询,启动两个连接。什么都有两个Php 处理连接错误MySqli,php,mysqli,Php,Mysqli,我试图简化我的mysqli,如果出现连接错误,我使用if和else,如果连接失败,则转到else。但这样我必须添加两个查询,启动两个连接。什么都有两个 $conn1= new mysqli($db_conn_server, $db_conn_username, $db_conn_password, $db_conn_dbname); if ($conn1->connect_error) { $conn1->close(); $conn2= new mysqli($db_conn_s
$conn1= new mysqli($db_conn_server, $db_conn_username, $db_conn_password, $db_conn_dbname);
if ($conn1->connect_error) { $conn1->close();
$conn2= new mysqli($db_conn_server, $db_conn_username, $db_conn_password, $db_conn_dbname);
$sms_sys_query2 = "INSERT INTO `sms_messages_tbl` (`session_unq_id`)
VALUES ('$transaction_request_to_api_code')";
if ($conn2->query($sms_sys_query2) === TRUE) { $conn2->close(); exit();
} else { $conn2->close(); exit(); }
}else {
$sms_sys_query1 = "INSERT INTO `sms_messages_tbl` (`session_unq_id`)
VALUES ('$transaction_request_to_api_code')";
if ($conn1->query($sms_sys_query1) === TRUE) { $conn1->close(); exit();
} else { $conn1->close(); exit(); }
}
仅仅用相同的名称启动一个新连接就可以了吗
$conn1= new mysqli($db_conn_server, $db_conn_username, $db_conn_password, $db_conn_dbname);
if ($conn1->connect_error) { $conn1->close();
$conn1= new mysqli($db_conn_server, $db_conn_username, $db_conn_password, $db_conn_dbname);
}
$sms_sys_query1 = "INSERT INTO `sms_messages_tbl` (`session_unq_id`)
VALUES ('$transaction_request_to_api_code')";
if ($conn1->query($sms_sys_query1) === TRUE) { $conn1->close(); exit();
} else { $conn1->close(); exit(); }
}
我是新手,所以如果有更好的方法。。。请让我知道:)
这将完成任务,其中DB_HOST等是常量
如果连接失败,脚本将失效并抛出错误
然后,您通常会选择抛出的错误并显示一个错误页面,并将错误记录到error.log文件中。您认为这将如何工作?如果它失败了一次,究竟是什么让你认为它可以工作一条线下来?为什么你要做两个连接开始。。。?!你这样做很好,但是如果第一次连接失败,第二次就会失败,尝试重新连接是没有用的。如果(错误){..}只需显示一条消息并调用
退出,而不是尝试在中重新连接ECCT疯狂的定义之一是试图重复做同样的事情,并期望得到不同的结果。如果第一个连接失败,那么第二个连接也很可能失败。那么,想想看:一个连接怎么会失败?数据库已关闭。网络瘫痪了。无效的连接凭据。数据库坏了/损坏了,诸如此类。虽然从微观角度来看,db/网络可能会在两次连接尝试之间的几微秒内决定重新开始工作,但我宁愿打赌99.99999%的可能性,即db已死亡/消失,尝试更多连接是徒劳的。如果db完全死了,或者你的证书不好,继续尝试是毫无意义的。
$DBCOnnection = mysqli_connect(
DB_HOST,
DB_USER,
DB_PASSWORD,
DB_NAME
) or die('Error ' . mysqli_error($DBCOnnection));