Пока данные о подключении ко второй базе данных установлены правильно, приложение работает очень просто. Когда в конфигурации соединения возникает ошибка, я не нашел рабочего метода, позволяющего оценить, что соединение не может быть установлено с другой базой данных.
Я обнаружил, что могу проверить, является ли $db->conn_id ложным, чтобы в конечном итоге вернуть ошибку пользователю, но по каким-то причинам он возвращает объект, несмотря ни на что.
Это краткий пример того, что я делаю внутри модели:
Код: Выделить всё
function plugin_subscribers_import_sfguard($channel_id)
{
// Get the channel object by its ID
$channel = $this->get_channel_by('id',$channel_id);
// Set the preferences for the second database
// from the channel informations we retrieved
$db['hostname'] = $channel->host;
$db['username'] = $channel->user;
$db['password'] = $channel->password;
$db['database'] = $channel->db;
$db['dbdriver'] = "mysql";
$db['pconnect'] = FALSE;
$db['db_debug'] = TRUE;
// Open the connection to the 2nd database
$other_db = $this->load->database($db,TRUE);
if ( ! $other_db->conn_id )
{
// This never gets executed as $other_db->conn_id always
// returns: "resource(34) of type (mysql link)"
return false;
}
else
{
// Execute the rest of the import script
$other_db->select('*');
$other_db->from('sf_guard_user');
$other_db->join('sf_guard_user_profile',
'sf_guard_user_profile.id=sf_guard_user.id',
'inner');
$query = $other_db->get();
}
}
Я также пытался попытаться обнаружить проблему с подключением, но безуспешно.
Заранее спасибо за всю поддержку, которую вы можете предложить.
Федерико
Подробнее здесь: https://stackoverflow.com/questions/166 ... tion-fails
Мобильная версия