Questions tagged «database»

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

4
如何获得核心以利用MySQL主/从配置?
我读了这个问题,MySQL主/从复制不起作用,其答案是: 在Drupal核心中几乎没有实现使用从属数据库。如果要开发自己的模块,则对db_query的调用需要使用$ options数组指定它们要使用从数据库。有关如何设置此数组的信息,请参见DatabaseConnection :: defaultOptions。 有没有一种方法杀死小猫黑客攻击核心,以获得db_query()并db_select()让更多的奴隶SELECT查询? 默认情况下,这些功能将查询主服务器,除非明确要求查询从服务器(请参阅其API)。您必须编写db_query($query, $args, array('target' => 'slave'))命令才能查询从站,而内核(和所有模块)并未编写来实现此目的。 只有搜索(请参阅从属部分)和聚合器似乎可以利用此功能。 编辑: 10月25日, 我看到pressflow 7退出了,但是我不确定现在是否有很大帮助。 我还没有找到相关的内容,因此让我们尝试一些赏金以帮助获得答案。 编辑: 10月31日, 我主要担心Crell对此主题的评论:与奴隶怎么办?。 主要是,如果我将SELECT查询发送到从属服务器,会遇到麻烦,复制延迟会发生什么情况,以及我可能想node_load()在保存新节点后立即执行操作。

2
EntityFieldQuery内部联接
我想使用EntityFieldQuery对象运行查询。我需要来自node和node_access表的值,因此我需要使用INNER JOIN。从do文档中,我无法弄清楚这是怎么可能的。 这就是我所拥有的- $query = new EntityFieldQuery(); $result = $query->entityCondition('entity_type', 'node') ->entityCondition('bundle', 'node_access') ->propertyCondition('type', 'external_link') ->propertyCondition('status', 1) ->fieldCondition('gid', '3', '=') ->fieldCondition('realm', 'domain_id', '=') ->fieldCondition('grant_view', '1', '>=') ->range(0,1) ->execute();
21 7  database 

2
在D7中的db_query中使用LIKE
我在Drupal 6中有这样的查询: $sql = 'SELECT sid, score FROM search_index WHERE word LIKE "%%%s%%"'; $result = db_query($sql,$search_term); 它运行良好,但是现在我要升级到Drupal 7。 我读了一下,这应该可以用,但事实并非如此: $sql = 'SELECT sid, score FROM search_index WHERE word LIKE "%:term"'; $result = db_query($sql,array(':term'=>$search_term)); 有人知道我在做什么错吗?
19 7  database 

1
加入并寻找NULL值
我正在使用标志模块,让用户将他们的问题标记为已解决,类似于其在本网站上的工作方式。因此,我希望用户过滤帖子以仅显示未解决的问题。此外,某些帖子可能根本不是问题。因此,它们不能具有“已解决”标志,但是当仅按未解决的问题进行过滤时,它们也不应出现在结果中。因此,我需要将节点表与其他两个表连接起来:flag_content和field_data_field_question(后面的表说明了帖子是否是一个问题)。 这是我正在尝试的当前代码: $query->join('flag_content', 'f', 'f.content_id = n.nid AND f.content_type = "node" AND f.fid = 5'); $query->join('field_data_field_question', 'q', 'q.entity_id = n.nid AND q.field_question_value = 1'); $query->condition('f.fid', 'NULL', 'IS'); $query->condition('q.field_question_value', 'NULL', 'IS NOT'); 但是,这导致以下错误: PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the …
19 7  database 

4
如何使用来自自定义表的数据的分页器制作可排序的表?
对于Drupal 6,您可以执行以下操作: $header = array( array('data' => t('Order id'), 'field' => 'order_id'), ... array('data' => t('Transaction time'), 'field' => 'payment_time', 'sort' => 'desc'), ); $sql = "..."; $sql .= tablesort_sql($header); $limit = 25; $result = pager_query($sql, $limit); ... 我接过来一看,并为Drupal 7和两个pager_query和tablesort_sql现在已经没有了。似乎PagerDefault可以使用该类使用DBTNG创建寻呼机查询。我无法在简单的API上找到任何线索来像在Drupal 6中一样将可排序表附加到查询。 那么,如何使用分页器从自定义表中提取数据来创建可排序表呢?
19 7  database 

1
是否可以对数据库进行测试以查看其是否不一致?
我们都知道Drupal并不真正支持数据库中外键的概念,而且可能永远不会1。 我们也知道,模块可能无法正确执行操作,或者用户会定期执行疯狂的操作,例如 DELETE FROM node_revision WHERE vid = 123 为了“保持数据库整洁”。发生这种情况时,挂钩不会运行,并且数据库中存在孤立数据。通常,这些数据是无害的,但有时会引起真正的怪异行为,并可能导致代码错误。 有什么不错的方法可以检测数据库中是否有失效和/或不一致的数据? 1 Drupal 7 Schema API 支持它们提供文档,但不支持实施。
18 database  testing 

10
创建字段后,如何更改其机器名称
我在输入字段名称时间隔了一下,现在机器名称不是我想要的名称。我知道这很烦人。但是我想知道创建字段后是否可以通过某种方式更改字段的机器名称。 我想这使我进入了问题的第二部分。如果我创建了一个字段,并且不再使用它,该如何删除它,是否必须从数据库中完成,或者可以在UI中的某个位置完成?


5
如何删除所有节点/字段修订版?
我有一个drupal 7个站点,其中保留节点和字段修订。如果错误地保存了一个新的有问题的版本,而我想恢复原状,则我会进行修订。 但是,现在我想清理和优化数据库,以减少硬盘空间。 对于站点的所有节点/字段,删除当前版本以外的所有修订有哪些方法?
17 7  database  nodes 

2
如何摆脱死锁和锁定超时类型问题?
我读过多个博客,尝试过搜索google,但没有从任何解决方案中获得满意的结果。我有以下问题: PDOException: SQLSTATE[40001]: Serialization failure: 1213 Deadlock found when trying to get lock; try restarting transaction: DELETE FROM {cache_field} WHERE (cid LIKE :db_condition_placeholder_0 ESCAPE '\\') ; Array ( [:db_condition_placeholder_0] => field\_info:% ) in cache_clear_all() (line 163 of \includes\cache.inc). PDOException: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction: …


2
如何以编程方式发布未发布的节点
我有一些未发布的节点,这些节点有其节点ID。如何以编程方式发布它们?使用以下查询在自定义模块中实现此目标是否正确? db_query("UPDATE {node} SET status = 1 WHERE nid = %d", $nid)
15 7  database 

3
什么是更快的db_query,db_select或EntityFieldQuery
因此,我试图找出更快的db_query,db_select或EntityFieldQuery。目前,我正在使用EntityFieldQuery。我正在抓取大约1600个节点条目。 我意识到这可能会给系统增加负担,所以我只想弄清楚哪个是获取1600个节点的最佳选择。减少几秒钟甚至几毫秒对于我正在构建的应用程序很重要。 预先感谢您的回答。
15 database 

1
是什么导致视图始终但间歇地找不到高级论坛模块提供的视图?
我从高级论坛模块收到一个频繁的间歇性错误,该错误在发生时会导致500错误(WSOD)。在生产中,每小时大约发生20次,每小时可能占所有论坛页面加载量的2-3%。它始终是断断续续的。在本地,我无法始终如一地重现该错误,但确实会发生。 错误发生 site / all / modules / contrib / advanced_forum / includes / core-overrides.inc`的232行: 调用未定义的方法stdClass :: preview() 问题在于Advanced_forum_get_topics()函数: function advanced_forum_get_topics($tid, $sortby, $forum_per_page, $sort_form = TRUE) { $term = taxonomy_term_load($tid); drupal_add_feed('taxonomy/term/' . $tid . '/feed', 'RSS - ' . check_plain($term->name)); // Views handles this page $view = views_get_view('advanced_forum_topic_list'); $view->sort_form = …
15 7  views  nodes  pantheon  database 

1
db_insert安全吗?
我正在使用Drupal 7方法db_insert,将数据插入Drupal数据库的自定义表中。我读过,这是首选的方法,但是我遍历了代码和doco,并且看不到任何解析值的地方,或者告诉我这些值是安全的。 一些值来自用户,因此我需要检查SQL注入攻击。 这是我正在阅读的示例,其中Drupal 6解析值,而Drupal 7版本不解析值。 <?php // Drupal 6 version db_query('INSERT INTO {vchess_games} (gid, timestamps, white, black, state, board_white, board_black) ' . "VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s')", $gid, $timestamps, $game['white'], $game['black'], $state, $board_white, $board_black); // Drupal 7 version db_insert('vchess_games') ->fields(array( 'gid' => $gid, 'timestamps' => $timestamps, …

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.