ODBC and DB2 Functions (PDO_ODBC)

소개

PPDO_ODBC는 PHP 데이터 개체(PDO) 인터페이스를 구현하여 ODBC 드라이버 또는 IBM DB2 CLI(콜 레벨 인터페이스) 라이브러리를 통해 PHP에서 데이터베이스에 액세스할 수 있도록 하는 드라이버입니다. PDO_ODBC는 현재 데이터베이스 드라이버의 세 가지 "맛"을 지원합니다.

ibm-db2
무료 DB2 express-C 클라이언트를 통해 IBM DB2 Universal Database, Cloudscape 및 Apache Derby 서버에 대한 액세스를 지원합니다.
unixODBC
unixODBC 드라이버 관리자 및 데이터베이스 자체 ODBC 드라이버를 통해 데이터베이스 서버에 대한 액세스를 지원합니다.
generic
PDO_ODBC에서 명시적으로 지원하지 않는 ODBC 드라이버 관리자에 대한 컴파일 옵션을 제공합니다.

Windows에서 php_pdo_odbc.dllphp.ini에서 확장으로 활성화되어야 합니다. PHP가 시스템 DSN으로 카탈로그된 모든 데이터베이스에 연결할 수 있도록 Windows ODBC 드라이버 관리자와 연결되어 있습니다.


설치

PDO_ODBC on UNIX systems
  1. PDO_ODBC는 PHP 소스에 포함되어 있습니다. 다음 configure 명령을 사용하여 PDO_ODBC 확장을 정적 또는 공유 모듈로 컴파일할 수 있습니다.
    ibm_db2
    ./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
                            

    ibm-db2 유형으로 PDO_ODBC를 빌드하려면 PDO_ODBC를 컴파일하는 동일한 머신에 DB2 애플리케이션 개발 헤더를 이전에 설치해야 합니다. DB2 애플리케이션 개발 헤더는 DB2 서버에 설치 가능한 옵션이며, IBM developerWorks » 웹사이트에서 무료로 다운로드할 수 있는 DB2 애플리케이션 개발 클라이언트의 일부로도 사용할 수 있습니다.

    configure 명령에 DB2 라이브러리 및 헤더 위치를 제공하지 않으면 PDO_ODBC의 기본값은 /home/db2inst1/sqllib입니다.

    unixODBC
    ./configure --with-pdo-odbc=unixODBC,/usr/local
                            

    configure 명령에 unixODBC 라이브러리 및 헤더의 위치를 ​​제공하지 않으면 PDO_ODBC는 기본적으로 /usr/local로 설정됩니다.

    generic
    ./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags
                            

미리 정의된 상수

아래 상수는 이 드라이버에 의해 정의되며 확장이 PHP로 컴파일되거나 런타임에 동적으로 로드된 경우에만 사용할 수 있습니다. 또한 이러한 드라이버별 상수는 이 드라이버를 사용하는 경우에만 사용해야 합니다. 다른 드라이버와 함께 드라이버별 속성을 사용하면 예기치 않은 동작이 발생할 수 있습니다. 코드가 여러 드라이버에 대해 실행될 수 있는 경우 PDO::getAttribute()를 사용하여 드라이버를 확인하기 위해 PDO::ATTR_DRIVER_NAME 속성을 얻을 수 있습니다.

PDO::ODBC_ATTR_USE_CURSOR_LIBRARY (int)
이 옵션은 ODBC 커서 라이브러리의 사용 여부를 제어합니다. ODBC 커서 라이브러리는 드라이버에 의해 구현되지 않을 수 있는 일부 고급 ODBC 기능(예: 스크롤 가능한 커서 차단)을 지원합니다. 다음 값이 지원됩니다.
  • PDO::ODBC_SQL_USE_IF_NEEDED (the default): 필요할 때 ODBC 커서 라이브러리를 사용하십시오.
  • PDO::ODBC_SQL_USE_DRIVER: ODBC 커서 라이브러리를 사용하지 마십시오.
  • PDO::ODBC_SQL_USE_ODBC: 항상 ODBC 커서 라이브러리를 사용하십시오.
PDO::ODBC_ATTR_ASSUME_UTF8 (bool)
윈도우 전용. true인 경우 데이터베이스에서 데이터를 읽거나 쓸 때 UTF-16으로 인코딩된 문자 데이터(CHAR, VARCHARLONGVARCHAR))가 UTF-8로 변환됩니다. false(기본값)이면 드라이버에서 문자 인코딩 변환을 수행할 수 있습니다.

런타임 구성

이러한 기능의 동작은 php.ini의 설정에 영향을 받습니다.

PDO_ODBC 구성 옵션

Name Default Changeable Changelog
pdo_odbc.connection_pooling "strict" PHP_INI_ALL  
pdo_odbc.db2_instance_name NULL PHP_INI_SYSTEM 이것은 더 이상 사용되지 않는 기능으로 향후 제거될 것입니다.

PHP_INI_* 모드에 대한 자세한 내용과 정의는 구성 설정을 설정할 수 있는 위치를 참조하세요.

다음은 구성 지시문에 대한 간단한 설명입니다.

pdo_odbc.connection_pooling string
ODBC 연결을 풀링할지 여부입니다. "strict", "relaxed" 또는 "off"(""와 같음) 중 하나일 수 있습니다. 매개변수는 연결 매개변수를 기존 풀링 연결과 일치시킬 때 연결 관리자가 얼마나 엄격해야 하는지를 설명합니다. strict는 권장 기본값이며 모든 연결 매개변수가 정확히 일치하는 경우에만 캐시된 연결을 사용합니다. relaxed은 유사한 연결 매개변수가 사용될 때 캐시된 연결을 사용하는 결과를 낳습니다. 이로 인해 (예를 들어) 가상 호스트 간의 연결 정보가 유출될 위험이 있는 캐시 사용이 증가할 수 있습니다.

이 설정은 php.ini 파일에서만 변경할 수 있으며 전체 프로세스에 영향을 줍니다. 통합 ODBC 확장을 포함하여 동일한 ODBC 라이브러리를 사용하는 프로세스에 로드된 다른 모듈도 영향을 받습니다.

경고 보안상의 이유로 공유 서버에서 relaxed 일치를 사용하면 안 됩니다.

변경할 이유가 없는 한 이 설정을 기본 strict 설정으로 두십시오.

pdo_odbc.db2_instance_name string
db2 플레이버를 사용하여 PDO_ODBC를 컴파일하는 경우 이 설정은 Linux 및 UNIX 운영 체제의 DB2INSTANCE 환경 변수 값을 DB2 인스턴스의 지정된 이름으로 설정합니다. 이렇게 하면 PDO_ODBC가 DB2 라이브러리의 위치를 ​​확인하고 DB2 데이터베이스에 대한 카탈로그 연결을 만들 수 있습니다.

이 설정은 php.ini 파일에서만 변경할 수 있으며 전체 프로세스에 영향을 줍니다. 통합 ODBC 확장을 포함하여 동일한 ODBC 라이브러리를 사용하는 프로세스에 로드된 다른 모듈도 영향을 받습니다.

이 설정은 Windows에 영향을 주지 않습니다.


목차

  • PDO_ODBC DSN — ODBC 또는 DB2 데이터베이스에 연결