如何连接到CodeIgniter中的SQL Server数据库?

时间:2012-04-02 08:22:19

标签: php sql-server-2008 codeigniter configuration connection

如何在CodeIgniter中连接到SQL Server数据库?

我目前正在CodeIgniter中启动一个应用程序,我想使用SQL Server。

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = '#.#.#.27';
$db['default']['username'] = '@@@@@@';
$db['default']['password'] = '@@@@@@@@@';
$db['default']['database'] = '$$$$$$$$$$$$$';
$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;

自动加载数据库后,它只显示一个没有错误的空白页面。您能否告诉我使用SQL Server数据库需要做哪些其他更改?

#autoload.php#
$autoload['libraries'] = array('database');

7 个答案:

答案 0 :(得分:3)

使用$ db ['default'] ['dbdriver'] ='sqlsrv';
在Windows上安装适用于SQL Server的PHP驱动程序

CodeIgniter MSSQL connection

答案 1 :(得分:3)

我无法使用mssql支持的驱动程序,因此我使用了sqlsrv

我通常用 ip,port 作为hostname连接,所以我改变了。

pconnect也给了我一些问题。我将其设置为FALSE并开始工作。

以下是我开始工作的配置:

$db['default']['hostname'] = '127.0.0.1,1433';
$db['default']['username'] = 'username1';
$db['default']['password'] = 'secretpassword';
$db['default']['database'] = 'databasename';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;

答案 2 :(得分:0)

这个怎么样?我看到它在某些服务器上运行。这是Windows服务器吗?

$db['default']['dbdriver'] = "odbc";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = FALSE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE; 

further reading

希望这会有所帮助

答案 3 :(得分:0)

您的配置代码没问题。进一步阅读here

如果您认为错误没有显示,请转到index.php并在顶部放置以下代码段以显示错误。

error_reporting(E_ALL);

其他,然后检查MSSQL服务是否正在运行且是否可访问。可以创建一个简单的.php并尝试使用普通代码进行连接。

非CI文件,例如,

<?php
$server = 'YOURPC\SQLEXPRESS';
$link = mssql_connect($server, 'user', 'pass');

if (!$link) {
    die('Something went wrong while connecting to MSSQL');
}
?>

答案 4 :(得分:0)

它与mysql的过程相同。 使用下面给出的相同配置:

  

$ active_group ='default';   $ active_record = TRUE;

     

$ db ['default'] ['hostname'] ='xxx.xx.xx.xx \ SQLEXPRESS';

     

$ db ['default'] ['username'] ='sa';

     

$ db ['default'] ['password'] =

     

'XXXXXXX'; $ db ['default'] ['database'] ='xxxxx';

     

$ 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​​'] =&gt; 'utf8_general_ci';

     

$ db ['default'] ['swap_pre'] ='';

     

$ db ['default'] ['autoinit'] = TRUE;

     

$ db ['default'] ['stricton'] = FALSE;

在您的模型中使用与

相同的内容
  

function selectagent($ table,$ agent)       {

     

$ field = $ this-&gt; db-&gt; get_where($ table,array('var1')   =&GT; $剂, '日子(日期)'=&GT;日期( 'd')));

  $fields=$field->result();

  return $fields;
}

答案 5 :(得分:0)

我刚刚解决了这个问题。我正在连接到使用microsoft Azure托管的MSSQL

在互联网上进行的一些研究工作后,我遵循的步骤如下:

database.cfg:

$db['default']['hostname'] = 'XXXXXXX.database.windows.net';
$db['default']['username'] = 'username';
$db['default']['password'] = 'password';
$db['default']['database'] = 'databasename';
$db['default']['dbdriver'] = 'sqlsrv';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = FALSE;
$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;

主要是dbdriver,pcconnect和你应该正确配置的主机名。休息很常见。从您的azure数据库详细信息中获取主机名。

我还修改了几个系统文件,因为我听说有DB驱动程序的问题。

系统/数据库/驱动程序/ SQLSRV / sqlsrv_driver.php

function db_pconnect()
    {
        //$this->db_connect(TRUE);
        return $this->db_connect(TRUE);
    }

function affected_rows()
{
    //return @sqlrv_rows_affected($this->conn_id);
    return @sqlsrv_num_rows($this->result_id);
}

我能够连接到数据库并创建数据库应用程序。

希望它能帮助有需要的人:)

答案 6 :(得分:0)

遵循以下简单步骤:

  1. 使用&#34;混合模式&#34; -enabled安装实例。如果您不确定观看this - 视频以正确的顺序开始。也许完全看它是个好主意。

  2. 更改&#39; ... ci / application / config / database.php &#39;中的db-config。

    $active_group = 'default';
    $query_builder = TRUE;
    
    $db['default'] = array(
        'dsn' => '',
        'hostname' => 'localhost',
        'username' => 'sa', // <- use 'sa'
        'password' => 'THE_PASSWORD_YOU_SET_ON_INSTALL', // "mixed-mode"
        'database' => 'ci',
        'dbdriver' => 'sqlsrv',
    //  'dbdriver' => 'mysqli', // <- my old "non-server" config (approx. 70% slower)
        '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
    );
    
  3. enter image description here