Php 将MSSQL和MySQL与CodeIgniter一起使用

Php 将MSSQL和MySQL与CodeIgniter一起使用,php,mysql,sql-server,codeigniter,Php,Mysql,Sql Server,Codeigniter,我正在尝试将我的应用程序连接到两个数据库。一个是MySQL,一个是MSSQL。我试图在谷歌上找到一个起点,但没有成功。我在前面的问题上没有发现任何有用的东西,类似于我在StackOverflow上的问题 是否有人将CI应用程序与MySQL和MSSQL连接?您只需在“application/config/database.php”文件中添加这两个数据库连接详细信息。请确保为每个字段正确设置了dbdriver字段,即“mysql”和“mssql”。您只需在“application/config/da

我正在尝试将我的应用程序连接到两个数据库。一个是MySQL,一个是MSSQL。我试图在谷歌上找到一个起点,但没有成功。我在前面的问题上没有发现任何有用的东西,类似于我在StackOverflow上的问题


是否有人将CI应用程序与MySQL和MSSQL连接?

您只需在“application/config/database.php”文件中添加这两个数据库连接详细信息。请确保为每个字段正确设置了dbdriver字段,即“mysql”和“mssql”。

您只需在“application/config/database.php”文件中添加这两个数据库连接详细信息。请确保为每个字段正确设置了dbdriver字段,即“mysql”和“mssql”。

您可以将数据库配置放在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';
//...
请注意,我们将默认组设置为mysql,因此如果您调用 $this->db->。。 它将使用默认的组db

对于其他连接(例如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');
       //...
    }
}

您可以使用这种方式进行许多dbs连接,例如read replica

您可以将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';
//...
请注意,我们将默认组设置为mysql,因此如果您调用 $this->db->。。 它将使用默认的组db

对于其他连接(例如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');
       //...
    }
}

您可以使用这种方式进行许多dbs连接,例如read replica(读取副本)

我使用下面的设置使其正常工作

在database.php文件中,输入以下内容。注意:替换两个配置的主机名、用户名、密码和数据库的占位符

active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'xxx.xxx.xxx.xxx',
    'username' => '<username>',
    'password' => '<password>',
    'database' => '<database>',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

$db['MSSQL'] = array(
    'hostname' => '<MSSQLHOSTIP\INSTANCE>',
    'username' => '<mssqluser>',
    'password' => '<mssqlpassword>',
    'database' => '<mssqldatabasename>',
    'dbdriver' => 'sqlsrv',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);
结果以对象数组的形式返回


希望这对某人有所帮助

我使用下面的设置使其正常工作

在database.php文件中,输入以下内容。注意:替换两个配置的主机名、用户名、密码和数据库的占位符

active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
    'dsn'   => '',
    'hostname' => 'xxx.xxx.xxx.xxx',
    'username' => '<username>',
    'password' => '<password>',
    'database' => '<database>',
    'dbdriver' => 'mysqli',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);

$db['MSSQL'] = array(
    'hostname' => '<MSSQLHOSTIP\INSTANCE>',
    'username' => '<mssqluser>',
    'password' => '<mssqlpassword>',
    'database' => '<mssqldatabasename>',
    'dbdriver' => 'sqlsrv',
    'dbprefix' => '',
    'pconnect' => FALSE,
    'db_debug' => (ENVIRONMENT !== 'production'),
    'cache_on' => FALSE,
    'cachedir' => '',
    'char_set' => 'utf8',
    'dbcollat' => 'utf8_general_ci',
    'swap_pre' => '',
    'encrypt' => FALSE,
    'compress' => FALSE,
    'stricton' => FALSE,
    'failover' => array(),
    'save_queries' => TRUE
);
结果以对象数组的形式返回

希望这对某人有所帮助

试试这个:

$db['default'] = array(
'dsn'    => 'sqlsrv:server=127.0.0.1,1433;Database=YourDatabaseName',
'hostname' => '',
'username' => '',
'password' => '',
'database' => 'YourDatabaseName',
'dbdriver' => 'sqlsrv',
'save_queries' => TRUE);
试试这个:

$db['default'] = array(
'dsn'    => 'sqlsrv:server=127.0.0.1,1433;Database=YourDatabaseName',
'hostname' => '',
'username' => '',
'password' => '',
'database' => 'YourDatabaseName',
'dbdriver' => 'sqlsrv',
'save_queries' => TRUE);

我个人建议使用PDO,而不是mssql和mysql函数。这是正在设置的数据库连接。连接后,您可以自由使用PDO、mysqli或任何其他方法。我个人建议使用PDO而不是mssql和mysql函数这是正在设置的数据库连接。连接后,您可以自由使用PDO、mysqli或任何其他您想要的方法。