Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 处理连接错误MySqli_Php_Mysqli - Fatal编程技术网

Php 处理连接错误MySqli

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

我试图简化我的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_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$DBCOnnection = mysqli_connect(
            DB_HOST,
            DB_USER,
            DB_PASSWORD,
            DB_NAME
        ) or die('Error ' . mysqli_error($DBCOnnection));