반응형


| 0320 실습 1. conn.php 파일은 오라클 연동을 위해 만들어 놓는다 (항상 준비해놓기) 2. st_in.html 파일은 다음에 만들 것이고, st_vi.php(학생 출력), pr_vi.php(교수 출력), co_vi.php(과목 출력), sc_vi.php (점수 출력)파일을 만들것 * Select 다음에 * (백설표) 쓰지 말 것 |
| 1. conn.php파일 만들기 =================================== <? $server = "dal"; $user = "st15"; $passwd = "st15"; $charset = "AL32UTF8"; $conn=@oci_connect($user, $passwd, $server, $charset) or die('Could not connect:'); ?> =================================== 2. 4개 파일 만들기 (st_vi.php, pr_vi.php, co_vi.php, sc_vi.php) st_vi.php 파일 예시 (파일 공통) <? echo("<a href=./st_in.html>자료 입력하기</a><hr>"); - 화면에 자료 입력하기 글자 출력, 클릭하면 입력 페이지로 가게 만든다 require('conn.php'); - 데이터베이스에 접속하는 설정이 담긴 conn.php파일을 이 자리로 불러온다 * 외부 파일(conn.php)에 작성된 데이터베이스 접속 변수($conn)와 설정값들을 현재 실행 중인 파일로 그대로 가져온다 $sql="select sno, sname, sex, syear, major, avr from student order by sno"; - 실행할 SQL 명령어를 준비한다 (학번순으로 정렬함) * $sql(변수): 실행할 SQL 문장을 저장하는 문자열 저장소 $result=oci_parse($conn, $sql); - 준비한 명령어를 데이터베이스에서 실행할 수 있도록 검사(파싱) 한다 * 접속통로($conn)를 통해 명령문($sql)을 전달하여 데이터베이스가 해당 문장을 읽고 실행 가능한 상태인지 문법을 검사(컴파일)함. 그 결과 상태를 $result 변수에 담는다 이것만 암기 메커니즘은 $conn 실행 -> $sql 실행 -> oci_parse 실행이 된 그 실행 내용이 $result 변수에 저장이 되는 것 oci_execute($result); - 검사가 끝난 명령어를 실제로 실행함 * oci_parse로 준비가 끝난 $result 명령을 데이터베이스 서버에서 실제로 수행하여 데이터를 찾아낸다 while ($row = oci_fetch_array($result, OCI_NUM)){ - 실행 결과에서 데이터를 한줄씩 꺼내오는 과정을 반복함 echo("$row[0] - $row[1] - $row[2] - $row[3] - $row[4] - $row[5] <br>"); } - $row[0]은 첫 번째 칸(학번), $row[5]는 여섯 번째 칸(평점) 이다, 0부터 5까지 총 6개의 데이터를 순서대로 화면에 출력함 * 실행 결과로 얻은 전체 데이터 뭉치($result-입력값)에서 1행(한 줄)씩 읽어오는 과정을 반복 한다 * OCI_NUM: 가져온 데이터를 컬럼 이름이 아닌 0,1,2 식의 숫자 번호로 분류한다 oci_free_statement($result); - 명령 실행에 사용했던 임시 메모리 공간을 비워줌 oci_close($conn); - 데이터베이스와의 연결을 안전하게 끊음 ?> * 함수는 그냥 위에서 아래로, 괄호 안에서 밖으로 실행된다고 생각하면 됨 |
| 참고사항 $row = oci_fetch_array($result, OCI_NUM) 실행 순서 1. $result 참조: oci_execute를 통해 데이터베이스 서버 메모리에 생성된 전체 결과 데이터 뭉치(Result Set)를 가리킨다 2. 데이터 행 추출: 데이터베이스에서 아직 읽지 않은 데이터 중 가장 위에 있는 **1행(한 줄)**을 읽어서 가져온다 3. 데이터 번호 할당 (OCI_NUM): 가져온 1행의 각 칸(컬럼)에 대해, 왼쪽부터 순서대로 **0, 1, 2, 3...**과 같이 숫자로 된 번호표(인덱스)를 붙인다 4. 배열 생성: 번호가 매겨진 데이터들을 PHP가 처리할 수 있는 형태인 숫자 인덱스 배열로 변환한다 5. 변수 대입 ($row): 생성된 배열 데이터를 $row라는 이름의 변수에 저장한다. 이제 $row[0]이나 $row[1]과 같은 방식으로 각 데이터에 접근할 수 있게 된다 6.상태 업데이트: 데이터베이스는 방금 읽은 줄의 다음 줄을 가리키도록 위치(Pointer)를 이동시켜, 다음번 호출 시 그다음 줄을 읽을 수 있도록 준비한다 |
'Infra & Security Eng > Database Engineering' 카테고리의 다른 글
| 데이터 모델링 정의, 구성요소 4가지, 정규화 정의, 함수적 종속, 단계별 과정 (0) | 2026.03.23 |
|---|---|
| PHP와 Oracle DB 연동의 모든 것: 웹 서버부터 DB 엔진까지의 메커니즘 총 정리 - 수정 중 (0) | 2026.03.20 |
| [PHP] Oracle 19c 데이터베이스 연동: oci_connect 상세 주소와 별칭으로 접속하기 (0) | 2026.03.20 |
| 시퀀스 개념, 용도, 생성, 수정, 삭제, 확인 명령어, 게시판 테이블 생성 실습 (0) | 2026.02.12 |
| 인라인 뷰 Top-N 분석과 RANK 개념과 실습 (0) | 2026.02.12 |