【问题标题】:Connecting CI with SQL Server 2008 R2将 CI 与 SQL Server 2008 R2 连接
【发布时间】:2014-03-24 03:38:36
【问题描述】:

我知道这个问题已经问了 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'];
        }

效果很好

但那是 mysql 和 php

现在我需要将我的 PHP 与 microsfot SQL Server 2008 R2 连接起来

这就是我的经历

首先,我从这里安装 sqlsrv 驱动程序 (SQLSRV30.exe) http://www.microsoft.com/en-us/download/details.aspx?id=20098

(据说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;

也是我的系统\数据库\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# 应用程序进行测试

我尝试连接到同一个数据库,它可以工作

我可以选择该数据库中的表

所以我想,我的数据库的远程连接已经激活

请帮帮我,谢谢

【问题讨论】:

    标签: php mysql sql sql-server codeigniter


    【解决方案1】:

    好的解决了

    我的问题是本地客户端

    我去控制面板>程序和功能

    我搜索“Microsoft SQL Server 2008 R2 Native Client”

    (因为我使用的是microsoft SQL Server 2008 R2)

    它会说,不建议卸载原生客户端,不过没关系,只要我们安装其他原生客户端即可

    我下载了

    “Microsoft SQL Server 2012 原生客户端”

    而且,它解决了,我不知道会发生什么,我只知道它帮助我的 php 应用程序连接到 ms sql server 2008 R2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多