1. PHP Interface#
이 장에서는 PHP에서 ODBC 함수를 이용하여 Altibase와 연동하는 방법을 설명한다.
Altibase PHP 모듈 참고 사항#
- PHP에서 지원하는 데이터 타입은 다음과 같다.
resource, int, bool, double, float, string, array, HashTable - Altibase 서버의 포트 번호와 Altibase에서 제공한 샘플 프로그램의 db.php에서 포트 번호를 맞춰야 한다.
PHP 연동을 위한 ODBC 매니저 설치#
PHP로 Altibase에 연동을 하기 위해서는 먼저 ODBC 매니저를 설치해야 한다. 이 절에서는 유닉스, 또는 리눅스에서 ODBC 매니저를 설치하고 사용환경을 설정하는 방법을 설명한다.
유닉스와 리눅스#
리눅스 또는 유닉스 환경에서 다음 절차대로 ODBC 매니저를 설치한다.
-
unixODBC 다운로드한다.
unixODBC 홈페이지에서 다운로드 할 수 있다. -
unixODBC 설치한다.
다운로드한 unixODBC 소스 파일을 컴파일해야 한다. 컴파일된 라이브러리를 특정 위치에 설치하려면, configure할 때 -prefix 옵션으로 경로를 입력한다../configure -prefix=설치경로 -enable-gui=no --enable-drivers=no make make install
-
unixODBC 환경을 설정한다.
ODBCSYSINI 환경변수의 값을 Altibase 설치 계정의 홈 디렉터리 경로로 설정한다.export ODBCSYSINI=~
-
unixODBC Driver Manager가 설치된 경로를 다음과 같이 환경변수에 추가한다. 라이브러리 경로를 설정하는 환경변수는 플랫폼과 운영체제의 bit에 따라서 LD_LIBRARY_PATH, LD_LIBRARY_PATH_64, SHLIB_PATH 중의 하나일 수 있다. 다음은 unixODBC를 /usr/local/odbcDriverManager32 또는 /usr/local/odbcDriverManager64에 설치한 예이다.
export LD_LIBRARY_PATH= /usr/local/odbcDriverManager32/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH_64= /usr/local/odbcDriverManager64/lib:$LD_LIBRARY_PATH_64
-
ODBCSYSINI 환경변수의 경로에 다음 2개의 파일을 생성한다.
odbc.ini odbcinst.ini
-
odbcinst.ini는 실제 내용이 없는 0 byte 파일이다.
-
odbc.ini에는 DSN 이름 및 Altibase ODBC 드라이버 파일의 위치, 서버의 IP 주소, 접속 포트 번호를 아래처럼 설정한다.
[Altibase] Driver = /home/altibase/altibase_home/lib/libaltibase_odbc.so Server = 127.0.0.1 Port = 20300
ODBC 연결을 위한 PHP 함수#
Altibase는 표준 ODBC를 지원함으로써 PHP에서 이 ODBC 함수들을 사용하여 Altibase 서버와 연동할 수 있다.
PHP에서 사용하는 ODBC 함수들에 대한 자세한 설명은 아래의 PHP 공식 매뉴얼 사이트를 참조한다.
Sample Test#
<?
// SYSTEM DSN, USER_ID, USER_PASSWORD
$conn = odbc_connect("Altibase", "SYS", "MANAGER");
if ($conn)
{
// direct-execution
echo "now, i create table t1 (id integer, name char(20)<br>";
odbc_exec($conn, "drop table t1");
odbc_exec($conn, "create table t1 (id integer, name char(20))");
// prepare-execution
echo "now, i insert into t1 value (100, Lee)<br>";
$stmt = odbc_prepare ($conn, "insert into t1 values (?, ?)");
$Insert = array (100, "Lee");
if (!odbc_execute($stmt, &$Insert))
{
echo ("error");
}
// single-selection
$res = odbc_do ($conn, "select id, name, sysdate from T1");
odbc_fetch_row ($res);
$ID = odbc_result($res, 1);
$NAME = odbc_result($res, 2);
$DATE = odbc_result($res, 3);
echo ("id = $ID , name = $NAME datetime = $DATE <br>");
odbc_close($conn);
}
?>