【发布时间】:2017-05-10 11:24:52
【问题描述】:
我想在 MySQLi 中创建一个自定义错误系统,为此我需要一个包含所有错误代码的列表以及导致它们的原因的描述。
我搜索了整个网络,但在 php.net 上找不到任何东西
例如,如果我创建一个主机无效的新对象:
$mysqli = new mysqli('invalid_host', 'root', '', 'db');
那么错误代码将是2002,这意味着它找不到地址。
原来的错误是这样的:
php_network_getaddresses: getaddrinfo failed: nodename or servname provided, or not known
但我希望它显示:
连接错误! 连接到数据库时出现问题,这是由于您的主机名无效:“invalid_host”似乎无法连接或无法ping通! (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 服务器进行更轻松、更安全的(准备)查询。
【问题讨论】:
-
我不应该在寻找 PHP MySQLi @JimL 吗?
-
那些错误信息来自服务器。 PHP 只是简单地返回它们。
-
您似乎在假设给定的错误代码总是意味着相同的潜在问题。或者返回相同的文本。它没有。更糟糕的例子是错误 2003。代码标识了发生了什么失败(例如,连接);它并不总是局限于一个失败的原因,试图将其减少到这样的程度会导致给出错误的建议。可以说,除非您查看并考虑 mysqli、libmysql、mysqlnd 和其他任何组合的整个代码库……否则您无法提供有意义的“扩展”错误。
标签: php mysql mysqli custom-errors error-list