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