到目前为止,我已经使用 PHP 展示了一个具有与 MySQL 相同的列字段和关键字的项目。今天再次使用PhpMyAdmin管理数据库时,刚收到如下消息警告。
The column name 'order' is a MySQL reserved keyword.
我的项目仍在使用关键字 order
作为列名。
我的问题是有什么风险或......当我们使用与表列相同的 MySQL 关键字时
?
最佳答案
风险?您遇到过以下风险:查询未运行,因此您必须修复它。
对于大多数关键字,关键字与标识符混淆的可能性很小并且仍会产生有效查询。当然,您可以想出一些神秘的例子。
解决方法是转义标识符。 MySQL 使用反引号进行转义。其他数据库使用双引号或方括号。因此,还有另一个风险:反引号使用得越多,代码的可移植性就越差。
对我来说,主要的原因是可写性和可读性。在我的键盘上,反引号键位于左上角,我的小拇指必须伸得很远才能找到它。我发现阅读生成的代码更加麻烦,因为周围有很多神秘的字符。为清楚起见,避免转义标识符。避免保留字,只使用字母、数字和下划线就足够了。
还有另一种风险。 . .你会混淆单引号和反引号。那么您的查询可能有一个常量,您认为它有一个列值。这种混淆是该社区中最常见的 MySQL 问题之一。
关于php - MySQL同表列使用相同的关键字有什么风险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24182692/