Questions tagged «database»

Drupal提供了一个标准的,与供应商无关的抽象层,用于访问数据库服务器。

2
使用db_select()从两个表中选择字段
我正在使用db_select(),但不了解该fields()方法的语法。我正在使用A join()联接另一个表。所以对于表t和n,我想做类似的事情 SELECT t.tid, t.field1, t.field2, n.title, n.author FROM table t INNER JOIN node n ON t.nid = n.nid; 我有 $results = db_select('table', 't') ->fields( ... ) ->join('node', 'n', 'n.nid = t.nid') ->execute(); 但是如您所见,我迷失了fields()。我看到的示例仅指定一个表的字段: ->fields('t', array('tid', 'field1', 'field2')) 我要使用什么语法?
15 database 

2
在模块安装过程中如何创建表
我正在尝试为Drupal 7创建一个模块,我需要创建3个表并填充它。但是首先我需要创建它。 在文件mymodule.install中,我有 function mymodule_install() { } function mymodule_uninstall() { } function myodule_schema() { $schema['mymodule_table'] = array( 'description' => t('First table'), 'fields' => array( 'id' => array( 'description' => t('My unique identifier'), 'type' => 'int', 'unsigned' => true, 'not null' => true, ), 'list' => array( 'description' => t('list'), 'type' …
14 7  installing  database 



5
重置模块的hook_update_n状态
我正在扩展我之前编写的模块,它需要在中实现的一些模式更改hook_update_N。 我已将模块的版本从7.x-1.0升级到7.x-1.1并实现,foo_update_7100并且效果很好。 问题是我在内部犯了一个错误foo_update_7100,现在我已经解决了这个问题,所以我无法重新运行7100更新。我需要创建一个7101,但是这没有任何意义,因为我的所有更改尚未提交。 我尝试通过以下方式重置hook_update_n的状态: update system set schema_version=-1 where name='foo'; > Query OK, 1 row affected (0.01 sec) > Rows matched: 1 Changed: 1 Warnings: 0 然后我做了,drush cc all但drush updatedb -y仍然给我“不需要数据库更新”。 我如何解决这个问题而不是简单地增加hook_update_N数字?
14 7  database  updating 

1
如何编写具有“计数”和“具有”属性的Drupal 7查询?
我无法在drupal7标准中使用以下查询。.有人可以帮助我吗?有点紧急... SELECT n.nid AS nid, n.title AS title, count(n.title) AS ncount FROM node n INNER JOIN taxonomy_index tn ON n.nid = tn.nid WHERE (n.type = 'test') AND (tn.tid IN( 23,37)) AND (n.title LIKE '%name%') AND (n.status = 1) GROUP BY n.nid HAVING ncount = 2
14 7  hooks  database 

3
NoSQL与其他SQL Drupal设置
在Drupal中与MySQL,PostGRE SQL或MSSQL相比,运行NoSQL(从MongoDB开始)有什么优势?是否仅通过使用存储即可获得优势,还是需要更改某些Drupal配置?
14 7  database 

3
使用具有多个值的实体字段条件执行查询
我有一个具有实体引用字段的内容类型,该字段允许用户在该字段中添加多个分类法术语。我正在尝试执行查询,以获取在该字段内具有一组特定分类法术语的节点。 像这样,在该字段中使用一个值可以很好地工作。 $query = \Drupal::entityQuery('node') ->condition('status', NODE_PUBLISHED) ->condition('type', 'custom_type') ->condition('custom_taxonomy', 2) ->sort('field_last_name', DESC); 其中2是我要搜索的术语的ID。但是,当我尝试搜索包含两个特定术语的节点时, $query = \Drupal::entityQuery('node') ->condition('status', NODE_PUBLISHED) ->condition('type', 'custom_type') ->condition('custom_taxonomy', [2,8]) ->sort('field_last_name', DESC); 我收到错误 无效的参数编号:绑定变量的数量与令牌的数量不匹配: 我也尝试过 $query = \Drupal::entityQuery('node') ->condition('status', NODE_PUBLISHED) ->condition('type', 'custom_type') ->condition('custom_taxonomy', [2,8], 'IN') ->sort('field_last_name', DESC); 这不会失败,但是不会提供预期的结果。它显示具有项2 或项8的每个节点,而不是预期的项2 和项8。如何执行查询,以检查节点在实体引用字段中是否具有多个特定值?
14 8  entities  database 

2
如何教PhpStorm识别drupal {table} SQL语法?
我正在处理一些充满SQL查询的真正古老的drupal项目。PhpStorm对SQL的理解非常方便,但是我对诸如drupalism有一些疑问{table_name}。IDE抱怨说<reference> expected, got '{'。 如何设置PhpStorm,以便它可以理解花括号内的字符串只是一个表名?或者至少使它忽略花括号?
14 database 

3
通过t()传递变量总是不好吗?
我的hook_schema有一些辅助功能: function _bbcmap_schema_asr_field($description) { return array( 'type' => 'int', 'unsigned' => TRUE, 'size' => 'small', // Up to ~66k with MySQL (equivalent up to ~660.00 adjusted) 'not null' => FALSE, 'description' => t($description), ); } 然后,我可以像这样使用它: /** * Implements hook_schema(). */ function bbcmap_schema() { $schema['la_data'] = array( 'fields' => array( …


2
如何在hook_schema()中正确实现mysql date或datetime字段?
我已经编写了一个mymodule.install文件,其中包含一个架构定义以在数据库中创建表。该表包含两个数据字段。当用户填写特定内容(例如:指定新闻的特定发布日期)时,这些字段将由用户填充。现在,我没有故意使用“日期”贡献模块,因为出于其他原因,我需要将这两个字段放在数据库表的同一行中。 hook_schema用这种方式定义了两个字段: 'pubblish_date' => array( 'description' => t('The pubblish date for the single news'), 'mysql_type' => 'datetime', 'not null' => FALSE, ), 'unpublish_date' => array( 'description' => t('The unpublish date for the single news'), 'mysql_type' => 'datetime', 'not null' => FALSE, ), 该表已在数据库中正确创建,但是我总是收到这些建议消息: 字段news_board.pubblish_date:否mysql类型datetime的模式类型。字段news_board.unpublish_date:否mysql类型datetime的模式类型。news_board.pubblish_date:模式类型:普通没有类型。字段news_board.pubblish_date:类型的架构类型。news_board.unpublish_date:模式类型:普通没有类型。字段news_board.unpublish_date:没有type的架构类型。 对我来说似乎很奇怪,原因是我在文档中使用mysql_type规范来将日期时间格式存储在mysql数据库中。 我知道Drupal本机支持时间戳,如果要存储其他日期格式,则必须根据所使用的数据库使用特定的定义,例如mysql_type或pgsql_type。 在讨论中,我发现在线上有很多人使用mysql_type定义,从我的看到,他们解决了问题,那么为什么它对我不起作用? 非常感谢。

5
缓存表单表的大小巨大
上个月,缓存表的大小已增加到10+ GB,我已通过截断临时修复了它。上次我检查它约为1GB。因此,几个月后它将再次达到10GB。应该如何处理? 请注意,我已禁用了该站点上的所有cron作业。如果是这个原因,应该启用哪个cron?
13 database  caching 

3
截断字段修订表是否安全?
我注意到D7为每个字段创建一个field_revision表,并从其字段表副本中复制内容,即使已关闭修订。 我有一个很大的文本表,它占用了大量空间(几个GB)。 截断修订表是否安全? PS:同时,我也将此报告为错误。
13 7  entities  database  nodes 

7
直接在数据库中添加新用户
我已经将这些文件提供给Drupal站点,以便可以创建一个新主题。但是,我没有得到Drupal管理员用户/密码的日期,因此我无法登录到admin区域。有没有一种方法可以直接在数据库中创建新用户或其他方法?
13 6  users  database 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.