连接到数据库而不写入警告/错误消息

Posted

技术标签:

【中文标题】连接到数据库而不写入警告/错误消息【英文标题】:Connect to database without writing warning/error messages 【发布时间】:2017-06-16 15:47:39 【问题描述】:

我正在使用简单的方法连接到我的数据库:

$conn = mysqli_connect($servername, $username, $password, $dbname) or die("Unable to connect to MySQL");
$conn->query("SET NAMES utf8") or die("Unable to connect to MySQL");

它工作正常,但是当我直接输入错误$servername(或其他)时,我收到警告消息:-

警告:mysqli_connect(): (28000/1045): 拒绝用户访问 'root'@'192.168.0.157'(使用密码:YES) C:\MAMP\htdocs\modul-1-froland\zaro_\admin\db_config.php 在第 7 行

然后死亡消息:

Unable to connect to MySQL

没有@和error_reporting(E_ALL),有什么方法可以隐藏WARNING消息吗?我想要“用户友好”的错误消息(例如:无法连接到 MySQL)而不是所有错误消息(例如 mysqli_connect()...)。

【问题讨论】:

不明白为什么不使用“error_reporting”? 隐藏警告:- error_reporting(E_ERROR | E_PARSE); 因为我认为,还有另一种隐藏警告消息的方法,但似乎没有:( Remove warning messages in PHP的可能重复 【参考方案1】:

隐藏警告信息:-

error_reporting(E_ERROR | E_PARSE);

这里清楚地描述了不同的其他设置:- https://***.com/a/2867082/4248328

注意:- 我个人喜欢调试并发现所有错误并尝试纠正它们而不是隐藏它们(即使它们是警告或通知)。谢谢

【讨论】:

是的,我也是,这就是为什么我不想使用 error_report() 并隐藏它们,但是谢谢!【参考方案2】:

从语句中删除or die,这将停止您看到的错误消息。

如果您想要更友好的错误,请查看覆盖默认的 php 错误/异常。

用户自定义错误处理set_error_handler和异常处理set_exception_handler

【讨论】:

以上是关于连接到数据库而不写入警告/错误消息的主要内容,如果未能解决你的问题,请参考以下文章

[尝试使用mysqli连接到数据库时出现Codeigniter错误

连接到 MySQL 数据库时有关 SSL 连接的警告

无法连接到 Ubuntu 中的 mysql 数据库

错误:消息:无法连接到数据库

无法将本地 WordPress 连接到远程 MySQL 服务器

无法使用 pdo 连接到 mysql