哪里可以找到MySQLi中的所有可能错误

时间:2016-12-25 18:56:46

标签: php mysql mysqli custom-errors error-list

我想在MySQLi中创建一个自定义错误系统,为此,我需要一个包含所有错误代码的列表,以及有关它们原因的描述。

我在网上搜索但在php.net

上找不到任何内容

例如,如果我创建一个主机无效的新对象:

$mysqli = new mysqli('invalid_host', 'root', '', 'db');

然后错误代码为2002,这意味着它无法找到地址。

原始错误如下:

  

php_network_getaddresses:getaddrinfo失败:提供了nodename或servname,或者未知

但我希望它能显示:

  

连接错误!连接到数据库时出现问题,这是由无效的主机名引起的:“invalid_host”似乎无法连接或pingable! (2002)

为了做到这一点,我需要知道MySQLi中可能出现的所有错误,我还没有找到列表所以我在这里问你是否知道列表

如果你想知道我将如何做,我计划有一个包含以下内容的数组:

$error_list = [
    2002 => [
        'category' => 'connection_errors',
        'error_title' => 'Connection error!',
        'error_content' => 'There was an problem connecting to the database, this is caused by your invalid hostname: "invalid_host" which seems to not be connectable or pingable!',
        'error_code' => '2002',
        'error_description' => 'This error is occurred by invalid hostname. Why is this error occurring? It is occurring because you have entered invalid hostname, such as: "msql. example .com"'
    ]

    // And so on
];

如果有人知道在哪里找到这样的列表,我会非常高兴,这个项目将来会被分享,当它完成后我会添加一个带链接的评论。

项目还可以使用MySQLi对MySQL服务器进行更简单,更安全(准备好)的查询。

1 个答案:

答案 0 :(得分:0)

  

但我希望它能显示:

你不想要它。仅仅因为you're not the sole user of your site

对于网站用户来说,它仍然是一种胡言乱语。更不用说诚实的用户会被指责为#34;提供无效的主机名"!
如果您使用任何成熟网站,它永远不会显示任何类似的内容。只是一个通用的错误页面说"有一个错误,我们已经在它上面#34;。

对于程序员来说,除了实际的错误信息之外的所有这些东西都只是无用的垃圾,它会泄漏实际和有用的信息。而不是所有那些无用的东西,更好地添加堆栈跟踪,实际的SQL查询,一些关键变量。再次向大男孩们学习:好的框架不仅会向您显示错误消息,还会显示错误发生的代码段。

得到应有的尊重,我理解你改善mysqli的想法。但你必须先检查你的房屋。 运行现场网站一段时间以了解错误报告的真正目的非常重要。

想象一下,在您完成它之后,我将负责您的网站,并且它会发出此类错误。即使我不知道错误消息是什么意思,我也可以谷歌了。原始错误消息会给我1000个结果,而您的自定义结果会给我 nothing 。请不要用你自己的话重新告诉错误信息 - 你可能会失去重要的部分。您也不应该使用一些无用的描述来丢弃错误消息。不要管它,确保程序员能够阅读它。