안녕하세요, CI 3.1.13 , PHP 7.4 / centOS 7.0 으로 웹 사이트를 개발중인데요,
다름이 아니라 config/database.php 파일에서 ODBC를 연결하는 방법에 대해서 여쭙고자 글 남깁니다.
$db['default'] = array( 'dsn' => 'MySQLi://username:password@hostname:3306/database?charset=utf8&DBCollat=utf8_general_ci', 'hostname' => 'DB서버 주소', 'username' => 'DB계정', 'password' => 'DB패스워드', 'database' => '데이터베이스명명', 'dbdriver' => 'odbc', '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, );
-> odbc_connect(): SQL error: [unixODBC][Driver Manager]Invalid string or buffer length, SQL state S1090 in SQLConnect
$db['default'] = array( 'dsn' => '', 'hostname' => 'DB서버주소', 'username' => 'DB계정', 'password' => '패스워드', 'database' => '데이터베이스명', 'dbdriver' => 'odbc', '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, );
-> odbc_connect(): SQL error: [unixODBC][Driver Manager]Data source name not found, and no default driver specified, SQL state IM002 in SQLConnect
구글링을 해봐도 odbc 연결 관련 및 해당 오류에 대한 정확한 내용을 찾거나 이해하기가 힘듭니다..
혹시 CI에서 ODBC를 연결하기 위해 제가 어떤 부분을 고쳐야 하는지 알려주실 수 있으실까요??.. 부탁드립니다. 감사합니다
추가적으로 phpinfo()를 통해 현재 서버에 설치된 ODBC 관련 내용 첨부드립니다..

결국 해결했는데요,
웅파님 말씀대로 한글로 입력된 부분들은 지워도 상관이 없고 (dsn에 기재했을 경우)
odbc 가 IBM I Access 여서 해당 드라이버로 연결해줘야 했습니다.
추가적으로 뒤에 CCSID:1208 (UTF-8)을 입력해줘야 데이터들이 한글로 출력되더군요..