Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Drupal7的数据库中删除字段_Drupal_Drupal 7_Drupal Modules - Fatal编程技术网

如何在Drupal7的数据库中删除字段

如何在Drupal7的数据库中删除字段,drupal,drupal-7,drupal-modules,Drupal,Drupal 7,Drupal Modules,我需要从数据库的表中删除几个字段。我在drupal数据库的菜单自定义表中插入了字段。我想在模块被禁用时删除这些字段。我使用以下代码删除这些字段 function menu_clone_site_disable() { db_query("ALTER TABLE {menu_custom} DROP 'role'"); } 我得到以下错误。我不知道我做错了什么。我们将非常感谢您对解决此问题的任何帮助 PDOException: SQLSTATE[42000]: S

我需要从数据库的表中删除几个字段。我在drupal数据库的菜单自定义表中插入了字段。我想在模块被禁用时删除这些字段。我使用以下代码删除这些字段

   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() 

您犯了最小的错误…列名不应在引号内:

db_query("ALTER TABLE {menu_custom} DROP role");

您犯了最小的错误…列名不应在引号内:

db_query("ALTER TABLE {menu_custom} DROP role");

理想情况下,您应该依赖db_drop_field(),以便您的模块与所有可能的数据库选项保持兼容:

function menu_clone_site_disable() {
  db_drop_field('menu_custom', 'role');
}

理想情况下,您应该依赖db_drop_field(),以便您的模块与所有可能的数据库选项保持兼容:

function menu_clone_site_disable() {
  db_drop_field('menu_custom', 'role');
}

非常感谢你,我的朋友:)非常感谢你,我的朋友:)