PHP 데이터베이스 ODBC

ODBC는 데이터 소스(예를 들어 MS Access 데이터베이스)에 연결할 수 있는 애플리케이션 프로그래밍 인터페이스(API)입니다.

ODBC 연결을 만들기

ODBC 연결이 사용 가능하다면, 여러분의 네트워크에 있는 어떤 컴퓨터의 어떤 데이터베이스에도 연결할 수 있습니다.

MS Access 데이터에 도달하는 ODBC 연결을 만드는 방법은 다음과 같습니다:

  1. 제어판에서 열기관리 도구
  2. 중 하나를 더블 클릭하십시오데이터 소스 (ODBC) 아이콘
  3. 시스템을 선택 DSN 탭
  4. 시스템 DSN 탭에서 “추가” 버튼
  5. 선택 Microsoft Access Driver”. 클릭완료.
  6. 다음 인터페이스에서 "선택”을 통해 데이터베이스를 위치시킬 수 있습니다.
  7. 이 데이터베이스에 이름을 지어주세요데이터 소스 이름 (DSN).
  8. 클릭확인.

이 설정은 여러분의 웹 사이트가 있는 컴퓨터에서 완료되어야 합니다. 여러분의 컴퓨터에 인터넷 정보 서비스 (IIS)가 실행 중이면 위의 명령이 유효하지만, 여러분의 웹 사이트가 원격 서버에 있을 경우, 여러분은 서버에 대한 물리적 접근 권한을 가지거나, 여러분의 호스트 제공자가 DSN을 설정해야 합니다.

ODBC에 연결하기

odbc_connect() 함수는 ODBC 데이터 소스에 연결하는 데 사용됩니다. 이 함수는 네 가지 매개변수를 가집니다: 데이터 소스 이름, 사용자 이름, 비밀번호 및 선택적인 포인터 타입 매개변수.

odbc_exec() 함수는 SQL 문을 실행하는 데 사용됩니다.

예제

이 예제는 "northwind"이라는 DSN에 도달하는 연결을 만들고, 사용자 이름과 비밀번호 없이 생성하고 실행합니다:

$conn=odbc_connect('northwind','','');
$sql="SELECT * FROM customers"; 
$rs=odbc_exec($conn,$sql);

레코드를 가져오기

odbc_fetch_row() 함수는 결과 집합에서 레코드를 반환하는 데 사용됩니다. 행을 반환할 수 있다면 true를 반환하며, 아니라면 false를 반환합니다.

이 함수는 두 가지 매개변수를 가집니다: ODBC 결과 식별자와 선택적인 행 번호:

odbc_fetch_row($rs)

레코드에서 필드를 가져오기

odbc_result() 함수는 레코드에서 필드를 읽는 데 사용됩니다. 이 함수는 두 가지 매개변수를 가집니다: ODBC 결과 식별자와 필드 번호나 이름.

아래 코드 줄은 레코드에서 첫 번째 필드의 값을 반환합니다:

$compname=odbc_result($rs,1); 

아래 코드 줄은 "CompanyName"이라는 필드의 값을 반환합니다:

$compname=odbc_result($rs,"CompanyName");

ODBC 연결을 닫기

odbc_close() 함수는 ODBC 연결을 닫는 데 사용됩니다.

odbc_close($conn);

ODBC 예제

아래의 예제는 먼저 데이터베이스 연결을 생성한 다음, 결과 집합을 생성하고, 그런 다음 HTML 테이블에서 데이터를 표시하는 방법을 보여줍니다.

<html>
<body>
<?php
$conn=odbc_connect('northwind','','');
if (!$conn)
  {exit("Connection Failed: " . $conn);}
$sql="SELECT * FROM customers";
$rs=odbc_exec($conn,$sql);
if (!$rs)
  {exit("Error in SQL");}
echo "<table><tr>";
echo "<th>Companyname</th>";
echo "<th>Contactname</th></tr>";
while (odbc_fetch_row($rs))
{
  $compname=odbc_result($rs,"CompanyName");
  $conname=odbc_result($rs,"ContactName");
  echo "<tr><td>$compname</td>";
  echo "<td>$conname</td></tr>";
}
odbc_close($conn);
echo "</table>";
?>
</body>
</html>