zoukankan      html  css  js  c++  java
  • 如何配置Drupal数据库信息?

    Drupal的数据库连接信息通过文件settings.php中的变量$databases设置。变量$databases是一个二维的数组,第一维称为key,第二维称为target。使用这种方式可以处理多数据库和主从分离这样复杂的情况。

    例如,假设有这样的配置:

    $databases['default']['default'] = array(
      'database' => 'drupal',
    );
    $databases['default']['slave1'] = array(
      'database' => 'slave1',
    );
    $databases['default']['slave2'] = array(
      'database' => 'slave2',
    );
    
    $databases['erp']['default'] = array(
      'database' => 'erp',
    );
    
    $databases['oa']['default'] = array(
      'database' => 'oa',
    );

    默认的key是default,默认的target是default,因此大多数情况可以这样查询:

    $result = db_query('SELECT * FROM node'); // drupal数据库

    如果需要在指定的target中执行查询,可以这样:

    $result = db_query('SELECT * FROM node', null, array('target' => 'slave1'));
    $result = db_query('SELECT * FROM node', null, array('target' => 'slave2'));

    如果需要在指定的key中执行查询,可以这样:

    Database::setActiveConnection('erp');
    $result = db_query('SELECT * FROM erp_user');

    有多个从数据库时,也可以这样配置:

    $databases['default']['slave'][] = array(
      'database' => 'slave1',
    );
    $databases['default']['slave'][] = array(
      'database' => 'slave2',
    );
    $databases['default']['slave'][] = array(
      'database' => 'slave3',
    );

    如果需要在slave中执行查询,就这样写:

    $result = db_query('SELECT * FROM node', null, array('target' => 'slave'));

    Drupal遇到这种情况,会随机地从三台从数据库中选择一台。当然,在同一个PHP会话中这个连接是固定的,不同的PHP会话有可能不同。

  • 相关阅读:
    平稳随机过程通过线性系统
    频谱分析的作用
    数字图像处理中的4邻接,8邻接与m邻接
    网络存储实验基础
    灰度变换
    MATLAB数字图像处理基础
    用MATLAB对信号做频谱分析
    关于 oracle10g、oracle client和plsql devement 三者之间的关系
    技术栈呢
    Linux编程
  • 原文地址:https://www.cnblogs.com/eastson/p/3336313.html
Copyright © 2011-2022 走看看