• 如何配置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会话有可能不同。

  • 相关阅读:
    linux挂载windows共享文件夹
    Cython
    python并行编程
    数据库学习----MySQL 存储引擎
    数据库学习----MySQL 日志
    数据库学习----从文件l数据到数据库
    Golang 学习 ---- 编译打包
    数字转换成千字符
    el-select选择框宽度与输入框相同
    git常用命令总结
  • 原文地址:https://www.cnblogs.com/eastson/p/3336313.html
Copyright © 2020-2023  润新知