1

我的表中有一个名为“read”的列。当我尝试对其执行操作时,PHP 告诉我“读取”周围有一个错误。根据以前遇到此类错误的经验,我确定列名“read”是非法的。问题是我不能用 PHP 重命名列。每次我尝试时,我都会收到一个错误(实际上是同样的错误)。当我进入 PHPMyAdmin 并在那里进行更改时,它可以完美运行。

关于如何使用 PHP 更改列名的任何想法?

4

2 回答 2

5

在表名周围使用反引号,如下所示:

select * from `read`

它告诉 MySQL 您指的是名称而不是关键字。

于 2011-08-19T03:28:49.857 回答
2

当您说“重命名”时,您的意思是您正在尝试修改表定义本身,例如 with ALTER TABLE?如果是这样,您的 PHP 代码和 PHPMyAdmin 之间应该没有区别(因为后者本身就是 PHP 代码)。您可能遇到的唯一问题是,如果您在 PHP 代码中以与在 PHPMyAdmin 中不同的数据库用户身份登录。您需要确保用户对该表具有ALTER 权限。

如果您只是在谈论在表上运行正常查询,并且只是想阻止语法错误的发生,那么您可以将您的字段和/或表名包装在反引号中 - 即`通常与波浪号在同一个键~上数字栏 - MySQL 将能够区分字段名称和保留字。

于 2011-08-19T03:33:47.577 回答