我的表中有一个名为“read”的列。 当我尝试对它执行操作时,PHP告诉我围绕'read'有错误。根据之前对此类错误的经验,我确定列名“read”是非法的。 问题是我不能用PHP重命名该列。每次我尝试,我都会收到错误(实际上是同样的错误)。 当我进入PHPMyAdmin并在那里进行更改时,它会在之后完美运行。
关于如何使用PHP更改列名的任何想法?
答案 0 :(得分:5)
在表名周围使用反引号,如下所示:
select * from `read`
它告诉MySQL您指的是名称而不是关键字。
答案 1 :(得分:2)
当您说“重命名”时,您是否意味着您正在尝试修改表格定义本身,例如ALTER TABLE
?如果是这样,PHP代码和PHPMyAdmin之间应该没有区别(因为后者本身就是PHP代码)。您可能遇到的唯一问题是,如果您在PHP代码中以与PHPMyAdmin中的不同数据库用户身份登录。您需要确保该用户在该表上有ALTER privileges。
如果你只是谈论在表上运行普通查询,并且只是想停止发生语法错误,那么你可以将你的字段和/或表名包装在反引号中 - 即`通常与数字条上的波浪号〜在同一个键上 - 而MySQL将能够区分字段名和保留字。