CodeIgniter Datalink с MySQL и MSSQL
Я знаю, что есть несколько вопросов, похожих на этот вопрос, но почему-то я не могу заставить его работать, и я собираюсь найти решение, но, к сожалению, я не могу найти ни одного:
Ситуация: у меня есть веб-приложение, встроенное в CodeIgniter Framework, в данный момент оно может сохранять записи в своей собственной базе данных MySQL (DB1), мне также необходимо создать еще одну ссылку на другую базу данных, которая представляет собой MSSQL, который будет служить нашей бухгалтерской книгой, давайте назовем эту базу данных DB2.
Я попробовал:
$active_group = 'default';
$active_record = TRUE;
$db['MSSQL']['hostname'] = 'xxx.xxx.xxx.xxx\SQLEXPRESS';
$db['MSSQL']['port'] = 1433;
$db['MSSQL']['username'] = 'sa';
$db['MSSQL']['password'] = 'xxxxxxxxxxxxxx';
$db['MSSQL']['database'] = 'DB2';
$db['MSSQL']['dbdriver'] = 'mssql';
$db['MSSQL']['dbprefix'] = '';
$db['MSSQL']['pconnect'] = FALSE;
$db['MSSQL']['db_debug'] = TRUE;
$db['MSSQL']['cache_on'] = FALSE;
$db['MSSQL']['cachedir'] = '';
$db['MSSQL']['char_set'] = 'utf8';
$db['MSSQL']['dbcollat'] = 'utf8_general_ci';
$db['MSSQL']['swap_pre'] = '';
$db['MSSQL']['autoinit'] = TRUE;
$db['MSSQL']['stricton'] = FALSE;
$db['default']['hostname'] = '127.0.0.1';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'DB1';
$db['default']['dbdriver'] = 'mysqli';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
Я могу получить доступ и получить записи из DB1, используя это в модели:
class Transaction_model extends CI_Model{
function __construct(){
parent::__construct();}
public function get_transaction(){
$default_db = $this->load->database('default',TRUE);
$qry_res = $default_db->query("CALL sp_view_transaction()");
$res = $qry_res->result();
$qry_res->next_result();
$qry_res->free_result();
$return $res;
class Transaction extends My_Controller{
public function index(){
parent::__construct();}
public function get_transaction(){
$this->load->model('transaction_model');
$result = $this->transaction_model->get_transaction();
print_r($result);
но проблема начинает возникать, когда я пытаюсь запустить хранимую процедуру для MSSQL: Controller: $this->load->model('action_model'); $result = $this->action_model->MSQL_Transaction(); $ Print_r($ результат);
Model:
Public function MSQL_Transaction(){
$db = $this->load->database('MSSQL',TRUE);
$qry = $db->query("EXEC sp_view_list 1");
$res = $qry->result();
$qry->next_result();
$qry->free_result();
return $res;
Кто-нибудь может дать мне совет, что мне делать? Мне нужно обновить DB2, когда я успешно вставил запись в DB1. до сих пор он только возвращает пустую веб-страницу, которая не показывает никакой ошибки. Заранее большое спасибо. Я просто показываю запрос на выборку, потому что мне проще понять, если кто-нибудь может дать мне пример того, как это следует сделать, это действительно поможет.
веселит.
2 ответа
Попробуйте эту конфигурацию перед установкой поддержки драйвера sqlsrv на ваш сервер
<?php
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'xxxxxxxxxxxxxxxxxx\SQLEXPRESS';
$db['default']['username'] = 'sa';
$db['default']['password'] = 'xxxxxxxxxxxxxx';
$db['default']['database'] = 'database_name';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = FALSE;
$db['default']['stricton'] = FALSE;
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = '1xx.xxx.xx.x6x\SQLEXPRESS';
$db['default']['username'] = 'sa';
$db['default']['password'] = 'password';
$db['default']['database'] = 'databasename';
$db['default']['dbdriver'] = 'mssql';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;