PHP连接到MySql错误报告

时间:2014-02-08 11:34:36

标签: php mysqli

这似乎很简单,但我遇到了这个php错误报告的问题。我正在尝试连接到数据库,如果连接失败,我想报告一个简单的消息,例如“连接到数据库失败”。但是使用下面的代码我得到那些php警告消息。如何只显示用户友好的消息?谢谢你们

 function mySqlConnection($host, $username, $pass, $dbname){

 $connection = mysqli_connect($host, $username, $pass, $dbname)
 or die ('Connection to db failed');
}

3 个答案:

答案 0 :(得分:1)

用户不知道数据库是什么以及如果数据库失败该怎么办。

对于代码中可能出现的所有错误,您只需显示一个通用错误页面,同时发送相应的HTTP代码

所以,这样做吧。

set_error_handler("myErrorHandler");
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
    error_log("$errstr in $errfile:$errline");
    header('HTTP/1.1 500 Internal Server Error', TRUE, 500);
    readfile("500.html");
    exit;
}

function mySqlConnection($host, $username, $pass, $dbname)
{
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    $connection = mysqli_connect($host, $username, $pass, $dbname);
}

其中500.html是您的用户友好错误页面

答案 1 :(得分:0)

您可以使用@为函数添加前缀以禁止显示警告。

function mySqlConnection($host, $username, $pass, $dbname){
 $connection = @mysqli_connect($host, $username, $pass, $dbname)
 or die ('Connection to db failed');
}

您也可以使用ini_set('display_errors','0');来抑制所有警告和错误,但这可能不是您想要的。 (稍后调试时会很烦人)

在生产中,您应该禁用错误显示,并将它们记录到文件中。

答案 2 :(得分:0)


$link=mysql_connect("$host", "$username", "$password")or die("cannot connect");

mysql_select_db("$db_name")or die("cannot select DB");

if (mysqli_connect_errno())

  {

  echo "Failed to connect to MySQL: " . mysqli_connect_error();

  }