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

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

问题描述:

如何连接到CodeIgniter中的SQL Server数据库?如何连接到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'); 
+0

听起来像是你需要启用PHP的错误报告。 – shanethehat 2012-04-02 08:30:02

+0

@shanethehat,在主要index.php文件中使用error_reporting()值尝试。不成功。 – 2012-04-02 09:04:27

这个怎么样?我已经看到它在一些服务器上工作。这是一个Windows服务器吗?

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

进一步阅读: http://codefury.net/2011/01/codeigniter-php-iis-mysql-mssql/

希望这有助于

你的配置代码罚款。进一步阅读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'); 
} 
?> 
+0

确定@starx,让我试试,并会回复你! – 2012-04-03 05:25:38

使用使用$分贝[ '缺省'] [ 'dbdriver'] = 'SQLSRV';
并安装Microsoft驱动程序PHP为SQL Server在Windows

CodeIgniter MSSQL connection

是同一过程的MySQL。 使用下面给出的相同配置:

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

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

$分贝[ '缺省'] [ '用户名'] = 'SA';

$分贝[ '缺省'] [ '密码'] =

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

$ db ['default'] ['dbdriver'] ='mssql';

$分贝[ '缺省'] [ 'dbprefix'] = '';

$分贝[ '缺省'] [ 'pconnect'] = TRUE;

$分贝[ '缺省'] [ 'db_debug'] = TRUE;

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

$分贝[ '缺省'] [ 'cachedir'] = '';

$ db ['default'] ['char_set'] ='utf8';

$ db ['default'] ['dbcollat​​'] =>'utf8_general_ci';

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

$分贝[ '缺省'] [ 'autoinit'] = TRUE;

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

在模型中使用相同

功能selectagent($表,$剂) {

$字段= $这个 - > DB-> get_where($表,阵列( 'var1' => $ agent,'day(date)'=> date('d')));

$fields=$field->result(); 

    return $fields; 
} 

我不能让它与工作支持mssql司机,所以我用sqlsrv

我通常与IP,端口作为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; 

我刚刚得到这个问题就迎刃而解了。我被连接到MSSQL与微软的Azure

主办的步骤后,我互联网上的几个研究工作遵循如下:

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); 
} 

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

希望这将帮助别人需要:)

遵循以下简单步骤:

  1. 与“混合模式”安装实例 - 启用。如果您不确定手表this - 视频从正确的顺序开始。也许完全看它是个好主意。

  2. 变化 '... CI /应用/配置/ database.php中' 的DB-配置

    $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 
    ); 
    

enter image description here