getConnection の定義は、上記で使用されたものとは異なる引数の順序を示しています。
function getConnection($target = 'default', $key = NULL)
これは悲しいことに Database::addConnectionInfo() とは異なります。
public static function addConnectionInfo($key, $target, $info)
また、DB_select では、$key は options 配列にありますが、パラメーターではありません。
function db_select($table, $alias = NULL, array $options = array()) {
if (empty($options['target'])) {
$options['target'] = 'default';
}
return Database::getConnection($options['target'])->select($table, $alias, $options);
}
その間
final public static function getConnection($target = 'default', $key = NULL) {
したがって、これは、「マスター」または「スレーブ」または「デフォルト」が常にセットとして使用されることを意味しますが、代替データベース/スキーマへのキーではなく、db_set_active('...'); を必要とします。および db_set_active(); db_selectの周り。
db_select の処理内で他のデータベースへの呼び出しが簡単に必要になる可能性があるため (devel 呼び出しや alters での呼び出しなど)、これは柔軟性に欠ける設計です。この呼び出しの変更:
return Database::getConnection($options['target'])->select($table, $alias, $options);
Key パラメーターを追加するには (既に引数として指定されています!!) 必要ですが、私が見る限り不十分です。