PHP,즉'PHP:Hypertext Preprocessor'는 오픈 소스(오픈 소스 코드)에 널리 사용 되 고 HTML 을 삽입 할 수 있 는 다 용도 스 크 립 트 언어 입 니 다.그것 의 문법 은 C,자바,Perl 에 가 까 워 서 배우 기 쉽다.이 언어의 주요 목 표 는 웹 개발 자 들 이 동적 으로 생 성 된 웹 페이지 를 신속하게 작성 하도록 하 는 것 이지 만 PHP 의 기능 은 이에 국한 되 지 않 는 다.PHP 는 복잡 한 프로 그래 밍 임 무 를 더욱 빠 르 고 효과적으로 실현 할 수 있다 고 보편적으로 여 겨 진다.또한 더욱 안정 적 이 고 자원 을 적 게 차지 하 는 장점 이 B/S 구조 시스템 을 개발 하 는 데 필수 적 인 WEB 스 크 립 트 디자인 언어 가 되 었 기 때문에 중간 부품 과 유사 한 역할 을 한다.즉,문법 해석 과 집행 이다.ORACLE LOB 데이터 모델 은 B/S(Browser/server,브 라 우 저/서버)응용 시스템 에서 저장 해 야 할 것 은 단순 한 문자 정보 뿐만 아니 라 그림 과 비디오 자료 나 긴 텍스트 도 포함한다.예 를 들 어 공문 시스템 을 개발 하면 공문 의 도표,첨부 파일 등 바 이 너 리 파일 이나 긴 텍스트 는 일반적인 문자 나 다른 유형의 데이터 설명 을 사용 할 수 없 기 때문에 배경 데이터 베 이 스 는 이러한 데 이 터 를 저장 하 는 능력 을 가 져 야 한다.Oracle LOB 대상 을 활용 하면 이 기능 을 실현 할 수 있다.Oracle LOB 는 대량의 바 이 너 리 와 텍스트 데 이 터 를 저장 하 는 데이터 형식(하나의 LOB 필드 는 4GB 에 달 하 는 데 이 터 를 저장 할 수 있 음)이다.현재 이 는 내부 LOB 와 외부 LOB 두 가지 유형 으로 나 뉜 다.내부 LOB 는 데이터 베 이 스 를 데이터베이스 내부 에 바이트 흐름 으로 저장 합 니 다.따라서 내부 LOB 의 많은 조작 은 업무 에 참여 할 수 있 고 일반 데 이 터 를 처리 하 는 것 처럼 백업 과 복구 작업 을 할 수 있다.Oracle 8i 는 세 가지 유형의 내부 LOB:BLOB(바 이 너 리 데이터),CLOB(단일 바이트 문자 데이터),NCLOB(다 중 바이트 국가 문자 데이터)를 지원 합 니 다.그 중에서 CLOB 와 NCLOB 유형 은 긴 텍스트 데 이 터 를 저장 하 는 데 적용 되 고 BLOB 필드 는 이미지,동 영상,오디 오 등 대량의 바 이 너 리 데 이 터 를 저장 하 는 데 적용 된다.현재 오 라 클 8i 는 외부 LOB 타 입,즉 BFILE 타 입 만 지원 한다.데이터베이스 에서 이 유형 은 데이터 가 운영 체제 에 있 는 위치 정보 만 저장 하고 데이터 의 실 체 는 외부 파일 형식 으로 운영 체제 의 파일 시스템 에 존재 한다.따라서 이 유형 이 표시 하 는 데 이 터 는 읽 기만 하고 업무 에 참여 하지 않 는 다.이 형식 은 외부 프로그램 이 접근 하 는 파일 을 관리 하 는 데 도움 을 줄 수 있 습 니 다.PHP Oracle 8 함수 분석 PHP 에는 두 개의 ORACLE 함수 확장 라 이브 러 리 가 있 습 니 다.그 중에서 ORACLE 8 함 수 는 Oracle 8 과 Oracle 7 데이터 베 이 스 를 방문 할 수 있 습 니 다.이 함수 들 은 Oracle 8 Call-Interface(OCI 8)를 사용 하여 Oracle 위치 표지 부 에 부분 과 전역 PHP 변 수 를 연결 하 는 것 을 지원 합 니 다.LOB,FILE,ROWID 를 전면적으로 지원 하고 사용자 정의 변 수 를 사용 할 수 있 습 니 다.사용자 데이터베이스 의 사용자 정의 대상 클래스 입 니 다.Oracle 8 함수 라 이브 러 리 에서 함수 OCIFetchInto 는 한 줄 의 데이터 기록 을 되 찾 아 배열 에 넣 는 데 사 용 됩 니 다.이 함수 의 문법 설명 은 다음 과 같 습 니 다.int OCIFetchInto(array&result,int[mode])에서 매개 변수 mode 는 생략 할 수 있 고 내 정 된 값 은 OCI 입 니 다.NUM。Oracle LOB 를 방문 할 때 LOB 대상 으로 돌아 가 려 면 mode 는 OCI 로 설정 해 야 합 니 다.ASSOC+OCI_RETURN_LOBS。함수 OCIBindByName 은 PHP 변 수 를 Oracle 대상 과 연결 하여 PHP 와 Oracle 간 의 데이터 통신 을 구축 하 는 데 사 용 됩 니 다.이 함수 문법 은 boolean OCIBindByName(int stmt,string phname, mixed &variable, int length, int [type]) 그 중에서 매개 변수 stmt 는 Oracle 해석 함수 OCIParse 분석 을 거 친 문자열 지표 입 니 다.매개 변수 phname 바 인 딩 이 필요 한 ORACLE 는 변수 이름 을 되 돌려 줍 니 다.매개 변수 variable 앞 에 반드시&기 호 를 추가 하고 PHP 변수 주 소 를 표시 해 야 합 니 다.매개 변수 length 는 변수의 길이 이 고-1 로 설정 하면 지정 한 variable 변수의 최대 값 을 사용 합 니 다.매개 변수 type 은 생략 할 수 있 으 며,그 값 은 OCI 입 니 다.B_FILE(바 이 너 리 파일),OCIB_CFILE(텍스트 파일),OCIB_CLOB(문자 LOB),OCIB_BLOB(비트 LOB)및 OCIB_ROWID(ROWID)등 여러 종류.주의해 야 할 것 은 오 라 클 8 에 있 는 특유 의 새로운 데이터 형식 인 LOB/ROWID/BFILE 을 사용 할 때 OCINEW Descriptor()함 수 를 먼저 실행 하고 length 인 자 를-1 로 설정 해 야 한 다 는 점 이다.함수 OCINewDescriptor 는 새로운 LOB/FILE 설명 을 초기 화 하 는 데 사 용 됩 니 다.이 함수 문법 은 string OCINewDescriptor(int connection,int[type])의 type 과 OCIBindByName 함수 의 type 정의 입 니 다.필요 한 환경 설정 은 PHP 의 ORACLE 8 함수 라 이브 러 리 를 사용 하려 면 Oracle 8 클 라 이언 트 라 이브 러 리 가 필요 합 니 다.이 확장 자 를 사용 하기 전에 Oracle 사용자 와 WEB daemon 사용자 에 게 Oracle 환경 변 수 를 정확하게 설정 한 것 을 확인 하 십시오.설정 할 환경 변 수 를 보 여 줍 니 다:ORACLEHOME\#ORACLE 설치 경로 ORACLESID\#ORACLE 데이터베이스 ID LDLIBRARY_PATH\#LD 연결 라 이브 러 리 경로 NLSLANG\#ORALCE 지역(언어)설정 ORANLS33 # ORA_NLS 33 경 로 는 Linux 환경 에서 상기 변수 가 정확 한 지 검증 하 는 것 입 니 다.가장 좋 은 방법 은 Oacle 사용자 와 nobody 에서 각각 실행 하 는 것 입 니 다.\#env 출력 결과 에 따라 상기 환경 변수 가 일치 하 는 지 판단 합 니 다.WEB 서버 사용자 에 게 환경 변 수 를 설정 한 후에 WEB 서버 사용자(nobody,ww)를 Oacle 그룹 에 추가 해 야 합 니 다.ORACLE 8 클 라 이언 트 와 PHP 설치 설정 에 대한 상세 한 설명 은 관련 기술 매 뉴 얼 을 참고 하 시기 바 랍 니 다.응용 사례 가 PHP 에 업로드 되 고 파일 을 ORACLE LOB 필드 에 저장 하 는 응용 사례 는 다음 과 같 습 니 다.//LOB 대상 초기 화,PHP 변수 포인터$lob=OCINewDescriptor($conn,OCID_LOB); //관련 파일 기록 표 에 기록 을 추가 합 니 다.ORACLE SQL 문법 해석$stmt=OCIParse($conn,"update TFILE set FILENAME='".$_FILES['FJ1']['name']."',FILETYPE='".$_FILES['F1']['type']."',FILES=EMPTY_BLOB() where FILEID=".$newid." returning FILES into :lob"); //귀속 LOB 변수 OCIBindByName($stmt,':lob',&$lob,-1,OCIB_BLOB); OCIExecute($stmt, OCI_DEFAULT);//실행 문 if($lob->savefile($F1){/폼 에 제출 한 파일 을 lob 포인터 로 ORACLE 데이터베이스 OCICommit($conn)에 저장 합 니 다./업로드 성공}else{//업로드 실패}OCIFreeDesc($lob);OCIFreeStatement($stmt);//PHP 에서 파일 을 데이터베이스 에서 추출 하고 다운로드 하 는 것 을 끝 내 는 응용 사례 는 다음 과 같 습 니 다.$stmt=OCIParse($conn,"SELECT*FROM TFILE WHERE FILEID =$ID");OCIExecute($stmt);if(OCIFetchInto($stmt,$result,OCI_ASSOC+OCI_RETURN_LOBS)){//출력 파일 형식 정 보 는 브 라 우 저가 헤 더 를 판단 할 수 있 도록 합 니 다("Content-type:".$result[FILETYPE]);//출력 파일 이름,브 라 우 저 는 이 파일 헤 더 를 열거 나 다운로드 할 지 여 부 를 알려 줍 니 다.("Content-Disposition:attachment;filename=".$result[FILENAME]); //이상 header 함수 에 대한 사용 은 PHP manual,HTML 파일 헤더 정 보 를 참고 하 십시오.인터넷 RFC 2616 을 참고 하 십시오.//출력 파일 흐름,여기 서 브 라 우 저 에서 파일 내용 을 가 져 옵 니 다.파일 을 다운로드 하거나 직접 열 고 있 는 알림 echo$result[FILES]가 나타 납 니 다.}OCIFreeStatement($stmt);//상기 범례 를 끝 내 는 것 은 응용의 관건 적 인 문구 일 뿐 이 고 Linux+PHP+Apache+Oracle 8i 플랫폼 에서 검증 을 통 과 했 기 때문에 독 자 는 자신의 수요 에 따라 보완 하고 보충 할 수 있다.종결 어 본 고 는 PHP 가 ORACLE LOB 에 대한 방문 의 실현 을 연구 하고 자 한다.단지 PHP 가 B/S 구조 시스템 에서 기본적으로 기술 을 운용 하 는 데 관련 된 한 측면 일 뿐이다.필 자 는 JDBC 와 PHP-OCI 의 실행 효율 을 비교 한 적 이 있다.JDBC 를 방문 엔진 으로 하 는 OAS HTTP Server(HTTP Server 는 apache 2.0)의 응답 속 도 는 Linux+Aache+PHP-OCI 플랫폼 위 에 세 워 진 WEB Server 보다 못 하 다.그 중에서 리 눅 스 의 뛰어난 활약 이 있 지만 PHP 와 OCI 의 조합 이 매우 우수 하 다 는 것 은 부인 할 수 없다.ORACLE LOB 와 PHP ORACLE 8 함수 라 이브 러 리 를 결합 하여 활용 하려 는 시도 가 부족 하기 때문에 정보 관리 시스템 을 개발 하 는 과정 에서 대형 데이터 파일 에 대한 관 리 를 실현 하기 위해 PHP 의 이 방면 의 기능 이 효과적으로 이용 되 지 못 했 기 때문에 본 고 는 PHP 데이터 베이스 기술 에 종사 하 다가 이 방면 의 어 려 운 문제 에 부 딪 힌 프로그래머 에 게 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다: