====================================================================================
Array (
[0] => Array (
[0] => IM006,
[SQLSTATE] => IM006,
[1] => 0,
[code] => 0,
[2] => [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed
),
[1] => Array (
[0] => 01000,
[SQLSTATE] => 01000,
[1] => 5701,
[code] => 5701,
[2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Changed database context to 'database'
)
[2] => Array (
[0] => 01000,
[SQLSTATE] => 01000,
[1] => 5703,
[code] => 5703,
[2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Changed language setting to us_english.,
)
)
Array
(
[0] => Array
(
[0] => IM006
[SQLSTATE] => IM006
[1] => 0
[code] => 0
[2] => [Microsoft][ODBC 드라이버 관리자] 드라이버의 SQLSetConnectAttr을 실패했습니다.
[message] => [Microsoft][ODBC 드라이버 관리자] 드라이버의 SQLSetConnectAttr을 실패했습니다.
)
[1] => Array
(
[0] => 01000
[SQLSTATE] => 01000
[1] => 5701
[code] => 5701
[2] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]데이터베이스 컨텍스트가 'database'(으)로 변경되었습니다.
[message] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]데이터베이스 컨텍스트가 'database'(으)로 변경되었습니다.
)
[2] => Array
(
[0] => 01000
[SQLSTATE] => 01000
[1] => 5703
[code] => 5703
[2] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]언어 설정이 한국어(으)로 변경되었습니다.
[message] => [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]언어 설정이 한국어(으)로 변경되었습니다.
)
)==================================================================================
위와같은 에러는
php 설정시 서버의 ODBC 버전과 sqlsrv의 dll 버전이 맞지 않아서 발생한다.
php 설정시
pdo_sqlsrv.dll, sqlsrv.dll 을 제대로 적용되었음에도 php가 설치된 윈도우의 ODBC 버전 맞지 않다면 위와같은 에러를 볼수있다.
해결 방법은 2가지.
1. ODBC 버전을 올리던지
https://learn.microsoft.com/ko-kr/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver16
2. DLL 버전을 낮추던지...
https://pecl.php.net/package/sqlsrv
https://pecl.php.net/package/pdo_sqlsrv
뭘 낮추든 뭘 높이든 맞추면 된다.
호환성은 아래를 참고하면 될까??
https://learn.microsoft.com/ko-kr/sql/connect/php/microsoft-php-drivers-for-sql-server-support-matrix?view=sql-server-ver16