この質問に似た質問がいくつかあることは知っていますが、どういうわけかそれを機能させることができず、解決策を確認するために回っていますが、残念ながら何も見つかりません:
状況: 私は CodeIgniter フレームワークで構築された Web アプリケーションを持っています。現時点では、独自の 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('transaction_model'); $result = $this->transaction_model->MSQL_Transaction(); $print_r($result);
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;
誰が私が何をすべきかについて私にアドバイスを与えることができますか? DB1 にレコードを正常に挿入したら、DB2 を更新する必要があります。これまでのところ、エラーを表示しない空の Web ページのみが返されます。事前にどうもありがとうございました。私は選択クエリを示しているだけで、それが最も理解しやすいと思います.誰かがそれをどのように行うべきかについてのサンプルを私に与えることができれば、それは本当に大いに役立ちます.
乾杯。