我想某些情况下的错误代码可能会更改。但这不太可能,而且我敢肯定,MySQL有动力避免破坏每个人的代码。
如果您想确定,至少有两种简单的方法可以做到这一点:
阅读文档!参考页中列出了每个MySQL版本的错误代码。您可以通过更改右上角的选择器来选择正在阅读的文档版本。
$errNo = mysqli_errno($link);
if($errNo == 1146)
{
//Table doesn't exist
}
经验测试!尝试在MySQL客户端中进行操作,并查看输出了哪些错误代码。在您担心任何升级之前,请执行此操作。
https://dev.mysql.com/doc/refman/8.0/en/server-error-reference.html
然后测试另一个版本:
mysql> select * from table_that_does_not_exist;
ERROR 1146 (42S02): Table 'test.table_that_does_not_exist' doesn't exist
mysql> select version();
+---------------+
| version() |
+---------------+
| 5.7.27-30-log |
+---------------+
我不希望这些代码会改变,因为毫无疑问,那里确实有数量未知的代码确实使用了像mysql> select * from table_that_does_not_exist;
ERROR 1146 (42S02): Table 'test.table_that_does_not_exist' doesn't exist
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.17-8 |
+-----------+
这样的硬编码常量。但是you应该使用常量。 (例如,请参见:43
。)具有MySQL接口的每种编程语言也都提供常量。
然而,请注意,随着时间的流逝,由于底层MySQL系统的工作方式发生了一些变化,某些错误代码的确变得过时。请考虑上述网站上的以下引用:
注意,某些常量在更高版本的MySQL中已重命名,因为它们已过时。 (以防您怀疑:这里的名称与MySQL在源代码中使用的符号匹配。)为避免破坏代码,在此程序包中未更改过时的名称,但是您不应再在应用程序中使用它们。
很明显,如果您已按需使用了常量,则可以更轻松地在代码中查找这些位置。您应该始终查看MySQL的每个新版本(或代码所依赖的任何其他系统,包括语言本身)中的发行说明。有时会宣布功能已被弃用,并且您有责任使应用程序保持最新。