mysqli连接错误后无法重定向

时间:2017-05-01 16:41:17

标签: php mysql

我是php的新手。当我得到一个mysql连接错误时,我试图重定向到php中的错误页面,但是我得到一个错误,指出我无法修改标头,因为输出已经在第8行(我创建连接的地方)发送了。请问您能否以正确的方式提出建议?

<?php
$servername = "localhost:3306";
$username = "danny";
$password = "sql1";
$dbname = "testdb";

  try{
      $conn = new mysqli($servername, $username, $password, $dbname);
  }
  catch(Exception $e){
  header('Location: /connection_error.php');
  die();
}


?>

由于

丹尼

3 个答案:

答案 0 :(得分:2)

你需要在顶部添加这一行告诉mysqli抛出异常

mysqli_report(MYSQLI_REPORT_STRICT); 
$servername = "localhost:3306";
$username = "danny";
$password = "sql1";
$dbname = "testdb";

  try{
      $conn = new mysqli($servername, $username, $password, $dbname);
  }
  catch(Exception $e){
  header('Location: /connection_error.php');
  die();
}

答案 1 :(得分:0)

此外,您始终可以使用mysqli::$connect_errno检查上次连接呼叫的错误代码,而如果失败,则会返回上次呼叫的错误代码值。零意味着没有发生错误(因此是假的)。

com.mongodb.MongoTimeoutException: Timed out after 2000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[{address=localhost:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=null, userName='', source='admin', password=<hidden>, mechanismProperties={}}}, caused by {com.mongodb.MongoCommandException: Command failed with error 18: 'Authentication failed.' on server localhost:27017. The full response is { "ok" : 0.0, "errmsg" : "Authentication failed.", "code" : 18, "codeName" : "AuthenticationFailed" }}}]

答案 2 :(得分:-1)

试试这个

<?php
ob_start();

$servername = "localhost:3306";
$username = "danny";
$password = "sql1";
$dbname = "testdb";

  try{
      $conn = new mysqli($servername, $username, $password, $dbname);
  }
  catch(Exception $e){
  header('Location: /connection_error.php');
}

ob_flush();
?>