2012-04-02 70 views
3

如何連接到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

回答

0

這個怎麼樣?我已經看到它在一些服務器上工作。這是一個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/

希望這有助於

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'); 
} 
?> 
+0

確定@starx,讓我試試,並會回覆你! – 2012-04-03 05:25:38

0

是同一過程的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; 
} 
3

我不能讓它與工作支持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; 
0

我剛剛得到這個問題就迎刃而解了。我被連接到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); 
} 

我是能夠連接到數據庫和創建數據庫應用程序。

希望這將幫助別人需要:)

0

遵循以下簡單步驟:

  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