Определение для getConnection ссылается на другой порядок аргументов, чем использованный выше.
function getConnection($target = 'default', $key = NULL)
Это печально отличается от Database :: addConnectionInfo (), которая
public static function addConnectionInfo($key, $target, $info)
Кроме того, в DB_select ключ $ не является параметром, хотя он находится в массиве параметров:
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 (он уже указан в качестве аргумента !!) необходим, но, насколько я вижу, этого недостаточно.