CI 묻고 답하기

제목 CI4에서 MsSQL 사용하려는데 어렵네요.
카테고리 CI 2, 3
글쓴이 sorisae 작성시각 2019/12/04 23:53:02
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 18187   RSS

얼마전 CI4를 설치하고 메뉴얼 보면서 따라하고 있는데

CI4관련 자료는 찾기가 쉽지 않아 이렇게 질문 올립니다.

 

기존에 사용하고 있는 MsSQL 서버에 축적된 자료를 사용할려고 하는데 접속부터 쉽지가 않네요.

(참고로 이쪽 일이 현업이 아니고 비전공자라는 점 감안해주세요.)

 

그동안 경과는 아래와 같습니다.

 

1.윈도우10에 Bitnami WAMP stack 7.3 설치

 

2.app>Config>Database.php 수정

public $group_name = [

'DSN'      => '',

'hostname' => 'HOME\?????',

'username' => '?????',

'password' => '??????',

'database' => '??????',

'DBDriver' => 'sqlsrv',

'DBPrefix' => 'db_',  // Needed to ensure we're working correctly with prefixes live. DO NOT REMOVE.

'pConnect' => false,

'DBDebug'  => (ENVIRONMENT !== 'production'),

'cacheOn'  => false,

'cacheDir' => '',

'charset'  => 'utf8',

'DBCollat' => 'utf8_general_ci',

'swapPre'  => '',

'encrypt'  => false,

'compress' => false,

'strictOn' => false,

'failover' => [],

'port'     => 3306,

];

포트는 예제에 있는것 그대로 둔건데 요걸 어떻게 바꿔야 하나요?

 

3.SQLSRV561설치

 

4.php.ini 파일에 extension 추가

extension=php_sqlsrv_73_ts_x64.dll

extension=php_pdo_sqlsrv_73_ts_x64.dll

; Valid range 0 - 2147483647.  Default = 4096.mssql.textlimit = 2147483647; Valid range 0 - 2147483647.  Default = 4096.mssql.textsize = 2147483647

sqlsrv.ClientBufferMaxKBSize = 204800000

 

5.새 controller 생성

$db = \Config\Database::connect('group_name');

이하 간단한 코딩.

 

6.웹상 실행.

 

실행하면 Woops 오류 메시지가 뜨네요.

로그파일을 확인해보니 

CRITICAL - 2019-12-04 08:22:11 --> Class '\CodeIgniter\Database\sqlsrv\Connection' not found

라는 내용이 보여서 해당 위치를 확인해보니

MySQLi Postgre등등 다른 폴더는 보이는데 sqlsrv 폴더는 없네요.

 

MySQLI 처럼 여러 php파일(Builder Connection Forge PreparedQuery Result Utils)을 직접 작성해야하나요?

(메뉴얼에는 이런 내용은 전혀 없지만)

 

아니면 제가 뭔가 빠뜨린게 있나요?

 

미리 답변에 감사드립니다.

 다음글 코드이그나이터에서 PHPSpread 를 적용해보신 분들... (2)
 이전글 지금 순간에 사이트를 만든다면 3버전이 좋을까요? 4버... (8)

댓글

변종원(웅파) / 2019/12/05 09:24:13 / 추천 0

mssql을 sqlsrv 드라이버로 연결하라는 것은 어디서 찾으신건가요?

system 소스에서 sqlsrv로 검색해봤는데 아무 것도 나오지 않습니다. 매뉴얼엔 나와있지만 아직 완성되지 않은 것 같습니다.

그리고 포트 3306은 mysql 포트입니다.

 

배강민 / 2019/12/05 09:37:50 / 추천 0

https://codeigniter4.github.io/userguide/intro/requirements.html

아직 아래만 지원합니다.

  • MySQL (5.1+) via the MySQLi driver
  • PostgreSQL via the Postgre driver
  • SQLite3 via the SQLite3 driver
sorisae / 2019/12/05 10:19:20 / 추천 0

아 그렇군요. mysql처럼 mssql도 될거라고 생각했는데, ㅠ.ㅠ.

필요한 것만 찾아서 쓰다보니 requirement를 확인못했네요.

그리고 sqlsrv는 ci에서 본게 아니고 다른곳에서 php5.5 이상 버전에서는 그렇게 사용한다고해서 적용해본것입니다.

전공자가 아니다보니 검색하면서 일일이 하나씩 확인하다보니 좀 어렵고 혼란스러운 경우가 많네요.

여하튼 답변 감사드려요.

kaido / 2019/12/05 10:27:13 / 추천 0

목 마른자가 우물을 파는 법입니다 ㅎㅎ

필요하시면 mssql 드라이버 만들어서 사용하시면 됩니다 ㅎㅎ

 

그나마 pdo 만 나와도 연결은 되긴 할것입니다.

다만 pdo 가 mssql에 대한 호환성이 얼만큼 되는지는 약간 미지수 이긴합니다.

sorisae / 2019/12/06 09:54:33 / 추천 0

우물을 팠더니 물이 나오네요.

https://gitlab.com/kovijanny/sqlsrv-codeigniter4

sorisae / 2019/12/08 21:01:01 / 추천 0
kaido / 2019/12/09 09:44:14 / 추천 0

굿샷~

한명이 불편하다 생각 하면, 다들 불편하다고 생각 하는 법이죠 ^^