windows + php + mssql + sqlsrv connection Error

|

====================================================================================

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

And