CI 묻고 답하기

제목 일주일째 구글링하면서 헤매고 있습니다. MS SQL에 연결하려 하는데 도와주세요.
글쓴이 배넘 작성시각 2014/09/12 16:58:22
댓글 : 12 추천 : 0 스크랩 : 0 조회수 : 30162   RSS
현재 Codeigniter 2.2 / MSSQL 2008 / PHP 5.5.16-x86 / HTTPD 2.4.10-x86 사용중입니다.

SQL Server 2008 R2 Management Studio로는 접속이 되구요.
혹시나 해서 mySQL로 따로 생성해서 테스트해보니 원할하게 접속이 됩니다.
기존 DB가 msSQL이라 msSQL을 로딩해야 하는데 속이 타들어가네요.
고수님들의 가르침 부탁드립니다.



다음과 같은 오류가 발생하는데 어떻게 해야 할까요?
----------------------------------------------------------------------------------------------------
A Database Error Occurred

Unable to connect to your database server using the provided settings.
Filename: C:\Apps\Servers\Apache HTTP Server\httpd-2.4.10-x86\htdocs\TestWeb\system\database\DB_driver.php
Line Number: 124
----------------------------------------------------------------------------------------------------



mssql사용할때 sqlsrv를 쓰라는 말이 있어서 Codeigniter에는 다음과 같이 설정했구요
----------------------------------------------------------------------------------------------------

$db['default']['hostname'] = '127.0.0.1';
$db['default']['port'] = '1111';
$db['default']['username'] = 'admin';
$db['default']['password'] = '1234';
$db['default']['database'] = 'TestDB';
$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;
----------------------------------------------------------------------------------------------------


php.ini에서 아래와 같이 extension했습니다.
----------------------------------------------------------------------------------------------------
extension=php_sqlsrv_55_ts.dll
extension=php_pdo_sqlsrv_55_ts.dll
----------------------------------------------------------------------------------------------------


phpinfo보면 sqlsrv가 적혀있구요.
----------------------------------------------------------------------------------------------------
sqlsrv support enabled
 
Directive Local Value Master Value
sqlsrv.ClientBufferMaxKBSize 10240 10240
sqlsrv.LogSeverity 0 0
sqlsrv.LogSubsystems 0 0
sqlsrv.WarningsReturnAsErrors On On
 
----------------------------------------------------------------------------------------------------
 다음글 헬퍼를 오토로드 시키면 불러오질 못합니다. (1)
 이전글 DB 접속 여부 확인법 (4)

댓글

변종원(웅파) / 2014/09/12 17:09:34 / 추천 0
http://cikorea.net/tip/view/614/page/2/q/mssql 
참고해보세요.
포트를 따로 명시했을때 접속이 안됐었습니다.
배넘 / 2014/09/12 17:22:40 / 추천 0
변종원(웅파)님,
저도 여기 질문 게시판에서 그 방법을 찾아서 테스트 해봤습니다.
구글링해서 새로운 방법 발견할때마다
포트에 관련해서 따로도 적어보고 :뒤에 붙여보고 ,로도 확인해보고 있는데 

$db['default']['hostname'] = '127.0.0.1';
$db['default']['port'] = '1111';

$db['default']['hostname'] = '127.0.0.1:1111';

$db['default']['hostname'] = '127.0.0.1,1111';


세가지방법 모두 안되고 있습니다. ㅠㅠ
변종원(웅파) / 2014/09/12 17:36:40 / 추천 0
들국화 / 2014/09/12 17:40:44 / 추천 0
구글링 해보니 여러가지 말들이 많킨한데... 테스트 해볼수 없으니 답답하네요.
우선 de_debug, autoinit 을 하나씩 false 해 보세요. 몇몇에서 이런 글들이 보이네요.

$db['default']['hostname'] = 'tcp:localhost,1111'; 로도 한번 바꿔 보세요. 포트 주석처리 하시고..
$db['default']['hostname'] = 'localhost';

 
변종원(웅파) / 2014/09/12 17:44:09 / 추천 0
구글 검색해서 적용하셨을텐데 안되는게 이상하네요.

http://www.manjustudio.com/2013/01/09/codeigniter-mssql-sqlsrv/

아파치 재시작은 하셨을테고..
배넘 / 2014/09/12 17:46:07 / 추천 0
마이크로소프트에서 다운로드 받은 Microsoft Drivers 3.0 for PHP for SQL Server에서는
php_sqlsrv_54_nts.dll와 php_pdo_sqlsrv_54_nts.dll
밖에 없어서 그런지 sqlsrv가 phpinfo에 로딩 되지 않는 것으로 나옵니다.
제 php버전을 낮춰야 할까요?
변종원(웅파) / 2014/09/12 17:51:51 / 추천 0
배넘 / 2014/09/12 17:59:17 / 추천 0
변종원(웅파) / 저도 어제 구글링해서 링크해주신 글읽고 5.5버전 적용해서 phpinfo에 sqlsrv로딩 했었던건데 안되드라구요 ㅠ
               상관없는 설정 바뀔때도 혹시나하는 마음에 아파치 재시작 항상 하고 있구요

들국화 / database.php에 부울값들은 모든 경우의 수대로 true/false 적용해서 테스트 해봤어요 ㅠ
변종원(웅파) / 2014/09/12 18:09:16 / 추천 0
배넘/ php 버전을 낮춰서 테스트 해보시는 방법이 빠를 것 같네요.
5.3이하 인가는 mssql 드라이버도 사용할 수 있습니다.
들국화 / 2014/09/12 18:16:16 / 추천 0
배넘 / 2014/09/12 19:43:14 / 추천 0
들국화 / 으 링크해주신 방법도 전에 해봤는데 안통하네요 ㅠ

변종원(웅파) / PHP버전 내려서(5.3.16)테스트 중인데 mssql을 사용하니 그냥 흰 화면만 나오고
               sqlsrv를 사용하니 한 화면에 두가지 에러 메세지가 뜨네요 ;ㅅ;
에러1
A PHP Error was encountered
Severity: Warning
Message: sqlsrv_query() expects parameter 1 to be resource, boolean given
Filename: sqlsrv/sqlsrv_driver.php
Line Number: 153

에러2
Fatal error: Call to a member function num_rows() on a non-object in 
D:\Works\Sites\htdocs\TestWeb\system\libraries\Session.php on line 232
한대승(불의회상) / 2014/09/15 10:56:52 / 추천 0
관련하여 검색하여 보니 아직 마소에서 PHP 5.5 이상 버젼에 맞는 드라이버가 업데이트 되지 않고 있는것 같습니다.

웅파님 말씀대로 5.4 이하에서 테스트를 진행하시는게 좋을것 같습니다.