我需要从数据库中的表中删除一些字段。我在drupal数据库的menu_custom表中插入了字段。我想在禁用模块时删除这些字段。我使用以下代码删除这些字段。
function menu_clone_site_disable()
{
db_query("ALTER TABLE {menu_custom} DROP 'role'");
}
我收到以下错误。我不知道我做错了什么。任何帮助解决这个问题将不胜感激。
PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have
an error in your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near ''pzcheck'' at line 1:
ALTER TABLE {menu_custom} DROP 'role'; Array ( ) in menu_clone_site_disable()
答案 0 :(得分:2)
你犯了最小的错误......列名不应该在引号内:
db_query("ALTER TABLE {menu_custom} DROP role");
答案 1 :(得分:2)
理想情况下,您应该依赖db_drop_field(),以便您的模块与所有可能的数据库选项保持兼容:
function menu_clone_site_disable() {
db_drop_field('menu_custom', 'role');
}