使用MSSQL和MySQL与CodeIgniter

Adr*_*rge 1 php mysql sql-server codeigniter

我正在尝试将我的应用程序连接到两个数据库.一个是MySQL,一个是MSSQL.我试图在Google上找到一个可以开始的地方,但我没有成功.我在StackOverflow上的类似于我之前的问题中找不到任何有用的东西.

你们有没有把CI应用程序与MySQL和MSSQL联系起来?

小智 6

您可以将db配置放在application/config/database.php上,如下例所示:

$active_group = "default";
$active_record = TRUE;

/*MYSQL DB config EXMPALE */
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'username';
$db['default']['password'] = 'pass';
$db['default']['database'] = 'DATABASE_NAME';
$db['default']['dbdriver'] = 'mysqli';
//...


/* MSSQL DB config EXMPALE, note the first param my_mssql */

$db['my_mssql']['hostname'] = 'SQL SERVER IP';
$db['my_mssql']['username'] = 'username';
$db['my_mssql']['password'] = 'pass';
$db['my_mssql']['database'] = 'DATABASE_NAME';
$db['my_mssql']['dbdriver'] = 'mssql';
//...
Run Code Online (Sandbox Code Playgroud)

请注意,我们将默认组设为mysql,因此如果您调用$ this-> db-> ..它将使用默认组db.

用于查询另一个连接ex.MSSQL你将在你的模型中添加这样的东西

class example_model extends CI_Model
{
    var $mssql;
    function __construct()
    {
        parent::__construct();
        $this->mssql = $this->load->database ( 'my_mssql', TRUE );
    }

    function get_some_mssql_rows(){
       //use $this->mssql instead of $this->db
       $query = $this->mssql->query('select * from mssql_table');
       //...
    }

    function get_some_mysql_rows(){
       //use  $this->db for default 
       $query = $this->db->query('select * from mysql_table');
       //...
    }
}
Run Code Online (Sandbox Code Playgroud)

你可以使用这种方式为许多dbs连接,例如read replica