багом не является База данных

Sprinx

Пользователь
#1
При подключении 2 бд к сайту и более, все действия совершаются только с 1 бд.
Стоит учесть это.
 

Exile

Администратор
#2
Каким образом подключаете? Как тестируете? В общем в целом расскажите, чтобы можно было понять, что вы делаете не так.
 

Sprinx

Пользователь
#3
Раскоментил 2 подключение, вбил данные. В админке отображается что подключена 2 бд. Но любые действия со 2 бд нельзя сделать.
Достаточно заглянуть в файл common.php
Код:
function get_db_obj ($srv_name_or_alias = 'db1')
        {
                $srv_name = $this->get_srv_name($srv_name_or_alias);
 
                if (!is_object($this->srv[$srv_name]))
                {
                        $this->srv[$srv_name] = new sql_db($this->cfg[$srv_name]);
                        $this->srv[$srv_name]->db_server = $srv_name;
                }
                return $this->srv[$srv_name];
        }
 

Exile

Администратор
#4
Логично, что не будет работать. Потому что надо еще вот этот кусок кода в конфиге настроить:
PHP:
$bb_cfg['db_alias'] = array(
//    'alias'        => 'srv_name'
    'cap'          => 'db1',  // BB_CAPTCHA
);
И в дальнейшем, в коде вместо (например):
PHP:
DB()->query
Использовать:
PHP:
DB('cap')->query
Для запросов к базе данных, относящейся к алиасу 'cap'. База данных, относящаяся к алиасу, соответственно там же и меняется в конфиге. И если поставить:
PHP:
$bb_cfg['db_alias'] = array(
//    'alias'        => 'srv_name'
    'cap'          => 'db2',  // BB_CAPTCHA
);
То запросы будут идти ко второй базе данных, которую вы настроили выше.

То есть ко всем вызовам DB надо дописать алиас для нужной таблицы (базы данных).
 
Сверху