
1个回答
展开全部
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中执行查询,可以这样:
DatabaseConnection::setActiveConnection('erp');$result = db_query('SELECT * FROM erp_user');
例如,假设有这样的配置:
$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中执行查询,可以这样:
DatabaseConnection::setActiveConnection('erp');$result = db_query('SELECT * FROM erp_user');

2025-03-20 广告
Jtti是一家新加坡全球网络基础服务商,为数百万个网站提供支持,提供香港服务器、新加坡服务器等多种全球服务器,自营全球多个数据中心,为用户提供优质的网络资源和服务。
JTTI服务器整体性能是非常不错的,拥有CN2 GIA+BGP优化线路,多...
点击进入详情页
本回答由Jtti提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询