如何删除drupal 7数据库中的字段

时间:2012-03-20 02:28:38

标签: drupal drupal-7 drupal-modules

我需要从数据库中的表中删除一些字段。我在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() 

2 个答案:

答案 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');
}