簡體   English   中英

將CI與SQL Server 2008 R2連接

[英]Connecting CI with SQL Server 2008 R2

我知道這個問題已經問過100次

但我真的很絕望

我使用Windows 7

通常,我使用Code Igniter將PHP和MYSQL編碼為數據庫

我使用xampp 1.8.1 [PHP:5.4.7]

在application \\ config \\ database.php中,我使用

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = '';
$db['default']['password'] = '';
$db['default']['database'] = 'test';
$db['default']['dbdriver'] = 'mysql';
$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;

在我的system \\ database \\ DB_driver.php中,我使用

    var $dbdriver       = 'mysql';
    var $dbprefix       = '';
    var $char_set       = 'utf8';
    var $dbcollat       = 'utf8_general_ci';
    var $autoinit       = TRUE; // Whether to automatically initialize the DB
    var $swap_pre       = '';
    var $port           = '';
    var $pconnect       = FALSE;
    var $conn_id        = FALSE;
    var $result_id      = FALSE;
    var $db_debug       = FALSE;
    var $benchmark      = 0;
    var $query_count    = 0;
    var $bind_marker    = '?';
    var $save_queries   = TRUE;
    var $queries        = array();
    var $query_times    = array();
    var $data_cache     = array();
    var $trans_enabled  = TRUE;
    var $trans_strict   = TRUE;
    var $_trans_depth   = 0;
    var $_trans_status  = TRUE; // Used with transactions to determine if a rollback should occur
    var $cache_on       = FALSE;
    var $cachedir       = '';
    var $cache_autodel  = FALSE;
    var $CACHE; // The cache class object

在我的控制器內部,我使用

$query = $this->db->query('SELECT * FROM asal');
foreach ($query->result_array() as $row)
        {
            echo $row['asalid'];
        }

它完美地工作

但這是PHP的MySQL

現在,我需要將我的PHP與microsfot SQL Server 2008 R2連接

這就是我經歷過的

首先,我從此處http://www.microsoft.com/zh-cn/download/details.aspx?id=20098安裝sqlsrv驅動程序(SQLSRV30.exe)

(它說PHP 5應該使用SQLSRV30)

接下來,我將其解壓縮到我的php / ext

現在在我的php / ext中,我已經從SQLSRV30.exe中提取了8個其他文件,作為

php_sqlsrv_54_ts.dll
php_sqlsrv_53_ts.dll
php_sqlsrv_54_nts.dll
php_sqlsrv_53_nts.dll

php_pdo_sqlsrv_54_ts.dll
php_pdo_sqlsrv_53_ts.dll
php_pdo_sqlsrv_54_nts.dll
php_pdo_sqlsrv_53_nts.dll

然后,我也嘗試添加這些句子

extension=php_sqlsrv_54_nts.dll
extension=php_pdo_sqlsrv_54_nts.dll

在我的php.ini中

持續,

我將我的application \\ config \\ database.php更改為

    $db['default']['hostname'] = 'NB-EDP-04\SQLEXPRESS';
    $db['default']['username'] = '';
    $db['default']['password'] = '';
    $db['default']['database'] = 'test';
    $db['default']['dbdriver'] = 'mysql';
    $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;

還有我的system \\ database \\ DB_driver.php

    var $dbdriver       = 'sqlsrv';
    var $dbprefix       = '';
    var $char_set       = 'utf8';
    var $dbcollat       = 'utf8_general_ci';
    var $autoinit       = TRUE; // Whether to automatically initialize the DB
    var $swap_pre       = '';
    var $port           = '';
    var $pconnect       = FALSE;
    var $conn_id        = FALSE;
    var $result_id      = FALSE;
    var $db_debug       = FALSE;
    var $benchmark      = 0;
    var $query_count    = 0;
    var $bind_marker    = '?';
    var $save_queries   = TRUE;
    var $queries        = array();
    var $query_times    = array();
    var $data_cache     = array();
    var $trans_enabled  = TRUE;
    var $trans_strict   = TRUE;
    var $_trans_depth   = 0;
    var $_trans_status  = TRUE; // Used with transactions to determine if a rollback should occur
    var $cache_on       = FALSE;
    var $cachedir       = '';
    var $cache_autodel  = FALSE;
    var $CACHE; // The cache class object

但不好,我在URL上輸入localhost / edp后仍然出現此錯誤

Unable to connect to your database server using the provided settings.

Filename: C:\xampp\htdocs\edp\system\database\DB_driver.php

Line Number: 127

我使用Microsoft C#應用程序進行測試

我嘗試連接到相同的數據庫,並且有效

我可以選擇該數據庫內的表

所以我想,我的數據庫的遠程連接已經激活

請幫我謝謝

好吧,它解決了

我的問題是本地客戶

我轉到控制面板>程序和功能

我搜索“ Microsoft SQL Server 2008 R2本機客戶端”

(因為我使用的是Microsoft SQL Server 2008 R2)

它會說,不建議您卸載本機客戶端,但是可以,只要我們安裝其他本機客戶端即可

然后我下載

“ Microsoft SQL Server 2012本機客戶端”

並且,它解決了,我不知道會發生什么,我只是知道,它可以幫助我的php應用程序連接到ms sql server 2008 R2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM