2016-03-17 264 views
1

有一个问题和问题要分享。 所以我试图将Codeigniter 3.0.5连接到SQL Server。不过,无论我尝试过什么,我都会得到这个错误。Codeigniter - SQLServer数据库连接错误

A Database Error Occurred 
    Unable to connect to your database server using the provided settings. 
    Filename: core/CodeIgniter.php 
    Line Number: 500 

我的设置是

$active_group = 'default'; 
    $query_builder = TRUE; 

    $db['default'] = array(
     'dsn' => '', 
     'hostname' => 'MYSQLSERVERHOSTNAME', 
     'username' => '',//Empty I dont use any (Windows Auth) 
     'password' => '',//Dont use any 
     'database' => 'MYSQLSERVERDATABASENAME', 
     'dbdriver' => 'sqlsrv', 
     '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 
    ); 

我已经设置TCP/IP启用的,在IPAll增加1433口。重新启动服务几次,仍然有这个错误。但是,我的其他朋友的计算机可以使用此设置连接到数据库。 我使用PHP 5.6和SQLSRV32作为扩展。 有谁知道为什么?以及如何检查CI连接到数据库的错误日志?

PS:我试着复制我的朋友CI(运行的那个),以防万一我错过了某些代码并删除了一些行,然后我更改了主机名,但它仍然无效。所以,我的SQL安装可能有些问题,所以我试图检查控制面板中的安装...但是没有什么不同,因为我们使用相同的安装。在这里得到真正的困惑...

非常感谢!

+0

尝试删除'username'和'password'字段,而不是只是清空它们。 –

+0

Hi @FelixPamittan感谢您的回复。我试图删除它,然后重新启动服务,它仍然无法正常工作。 – albertjtan

回答

0

嘿浏览一下后,我建立了为什么我无法连接到sqlsrv的问题。我一直缺少odbc 11驱动程序。我知道后,我对代码配置这条线/ database.php中

$link = sqlsrv_connect('SQLSERVERHOSTNAME'); 

if (!$link) { 
    print_r(sqlsrv_errors()); 
    die(); 
} 

所以是不知何故,我不知道为什么我有,因为当我问我的朋友,他不记得安装到第一安装此驱动程序odbc驱动程序11 手动。所以是的,如果你是少数有这个奇怪问题的人之一,试着检查日志。谢谢任何帮助嘿嘿:D