这似乎很简单,但我遇到了这个php错误报告的问题。我正在尝试连接到数据库,如果连接失败,我想报告一个简单的消息,例如“连接到数据库失败”。但是使用下面的代码我得到那些php警告消息。如何只显示用户友好的消息?谢谢你们
function mySqlConnection($host, $username, $pass, $dbname){
$connection = mysqli_connect($host, $username, $pass, $dbname)
or die ('Connection to db failed');
}
答案 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(); }