[#15] Verbindung zu einer Oracle DB mit PHP

안녕하세요! 지금까지는 항상 PDO를 통해 MySQL 데이터베이스에 연결했습니다 오늘 저는 Oracle 데이터베이스에 연결한다는 사실을 알려 드리고자합니다

할 수 있습니다 연락 양식에 대한 예가 있습니다 다시 너 볼거야 기본적으로 차이점은 거의 없습니다

이제 폴더는 "Kontakt_Formular_Oracle"이라고합니다 나는 그 파일부터 시작하고 싶다 "Inc의 / db_connectphp" 여기서는 PDO 변형에서 데이터베이스에 대한 연결을 설정했습니다

이제이 파일을 사용하여 액세스 데이터를 중앙 집중식으로 정의합니다 여기에는 네 가지 변수가 있습니다 : 사용자, 암호, SID 및 문자 집합 이 파일 require () 함수를 사용하여 인덱스에 포함됩니다 이 아래에서 나는 함수와 실제 연결을 만든다 oci_connect () on

사용자 데이터는 앞서 언급 한 파일에서 가져온 것입니다 아래 연결 오류의 경우 오류 메시지를 표시합니다 아웃 여기에 호출 부호가있다 "아닙니다"와 같은 것을 의미합니다

따라서 연결이없는 경우 변수 "e" 해당 오류 여기 내려 줘 이 구문을 여기에서 반복해서 복사 할 수 있습니다 파일에 데이터베이스 연결이 필요합니다 연결 후 다음 구문이 매우 비슷하다는 것을 알 수 있습니다 PDO가 있습니다

먼저 변수가 다시 만들어지고 해당 변수와 함께 양식에서 채워진 내용 PDO의 prepare () 명령은 oci_parse ()라고하며, bindValue () 및 bindParam ()이 oci_bind_by_name ()이됩니다 execute () 함수는 이제 oci_execute ()라고 부릅니다 유일한 차이점은 오라클 철자법이 매우 PDO는 객체 지향이지만 절차 적으로 보인다 내가 다른 곳에서 설명하는 정확한 차이

PDO 표기법을 다시 살펴 보겠습니다 여기에 함수가있다 클래스에 속한 객체들 객체는 클래스의 인스턴스입니다 객체의 기능 객체 연산자로 호출됩니다 이것이 여기에있는 "->"입니다

프로 시저 스타일은 함수를 하나씩 처리합니다 이를 위해 어떤 객체도 필요하지 않습니다 게다가 SQL 쿼리가 약간 변경되었습니다 비교를 위해 MySQL 쿼리를 다시 추가했습니다 이것은 Oracle Query입니다

MySQL 데이터베이스에는 자동 증가 기능이 있습니다 이렇게하면 숫자를 입력 한 후 기본 숫자 키가 자동으로 설정됩니다 1로 레코드를 삽입하십시오 또한 증가라고합니다 N_ID 열이 MySQL 변종에 지정되지 않은 이유는 의지 값이 자동으로 증가 되었기 때문입니다

Oracle은이 기능을 알지 못합니다 그래서 N_ID 열을 명시 적으로 지정해야합니다 오라클은 소위 시퀀스를 사용합니다 내 시퀀스가 ​​호출됩니다 seq_tbl_kontaktformular 기본 키의 이름 : N_ID

그 뒤에 점과 "nextval"이라는 키워드가옵니다 "다음 가치"란 무엇입니까? 삽입 쿼리에 대한 시퀀스의 다음으로 높은 값이됩니다 통과시켰다 조만간 시퀀스를 만들어야합니다 날짜 더 이상 데이터베이스에 넘겨주지 않습니다

자동으로 현재 날짜가되도록 테이블을 생성 할 것이므로 저장됩니다 oci_bind_by_name 함수로 PHP 변수를 전달한 후 이, 그녀에게 질의를한다 oci_execute ()와 함께 그런 다음 $ stmt 변수의 잠금을 해제 할 수 있습니다 oci_free_statement ()와 함께 여기서는 선택 사항으로 간주 할 것입니다

다음 단계에서 데이터베이스 연결은 oci_close ()를 통해 닫힙니다 가장 최근에 $ stmt 변수를 릴리스해야합니다 아래의 다른 쿼리에서 다시 사용하고 싶습니다 모든 종류의 쿼리에 대해이 전체 구문을 사용할 수 있습니다 매개 변수가 필요없는 경우 (예 : 순수 매개 변수) "SELECT * FROM

"쿼리 oci_bind_by_name 함수를 그냥 둡니다 이제 원본 텍스트의 구문에 대해 확인하십시오 이것은 각 웹 서버에 복사해야합니다

나는 자유 프로그램 "fileZilla"를 사용한다 파일 -> 서버 관리자 아래에 저장된 연결 데이터가 있습니다 "새 서버"정보 연결 데이터를 입력 할 수 있습니까? 그런 다음 "확인"을 통해 닫습니다 위 왼쪽에는 저장된 항목이 표시되고 연결을 클릭하십시오 드래그 앤 드롭으로 서버의 전체 폴더를 드래그 할 수 있습니다

모든 파일이 복사되면 브라우저를 통해 문의 양식에 도달 할 수 있습니다 그래서 완벽 해 그건 이미 작동합니다 데이터베이스가 누락되었습니다 Oracle 서버와 웹 서버가 VPN 연결을 통해 있습니다

달성 나는 이미 연결되어있다 오라클 서버는 대부분 대기업에서 사용되지만 많은 기업에서도 사용됩니다 칼리지와 대학은 학업 목적으로 오라클의 입학 허가를 제공합니다 데이터베이스와 시퀀스를 생성하려면 "Oracle Developer"를 엽니 다

현재 버전 412를 사용합니다 인터넷에서 버전을 다운로드 할 수 있습니다 다시 말하지만, 이미 연결 데이터를 저장했습니다

새 연결 데이터를 입력하려면 여기를 클릭하십시오 더하기 기호 연결에 이름을 지정할 수도 있습니다 모든 액세스 데이터를 입력 한 경우 당신은 아래의 연결을 테스트 할 수 있습니다 모든 것이 작동하면 "저장"을 클릭하십시오

나는 지금 연결되어있다 주변을 직접 둘러 볼 수 있습니다 SQL 명령을 실행하십시오 "SELECT * FROM v $ Versioin"을 사용하면 Oracle 서버를 표시하십시오 그래서 우리는 "Database 12c Enterprise Edition"을 여기에 가지고 있습니다

좋습니다 단, 추가 정보로 전달해야합니다 테이블이 여기에 테이블 폴더에 표시됩니다 지금은 테이블이 없습니다 그게 바로 제가 새 것을 입을 이유입니다

오른쪽 클릭에 관하여 -> "새 테이블" 첫째, 나는 테이블의 이름을 용서합니다 "Tbl_Kontaktformular" 총 5 열이 필요합니다 여기서 MySQL 데이터베이스의 이름과 데이터 유형을 다시 볼 수 있습니다

데이터 유형은 Oracle에서 다른 것으로 불립니다 동영상 설명에있는 데이터 유형에 대한 링크를 찾을 수 있습니다 오라클 데이터베이스 데이터 유형을 지정하려면 위의 "고급"을 클릭하십시오 나는 그들의 이름에 칼럼을 쓴다 및 데이터 유형 "not null"로 설정하십시오

내가 말한 날짜는 내가 표준이라고 말했어 "CURRENT_TIMESTAMP" 현재 날짜와 시간은 항상 삽입 지점에 삽입됩니다 이제 기본 키 N_ID를 선택합니다 화살표를 사용하여 하나 이상의 열을 선택할 수 있습니다 내가 원한다면 여기에서도 이름을 바꿀 수있어

하지만 그대로두고 "OK"로 확인하십시오 보시다시피, 테이블이 여기에 만들어졌습니다 기본 표준 나는 테이블의 구조를 본다 내용을보고 싶으면 탭 "데이터"를 선택합니다 지금은 여전히 ​​비어 있습니다

우리가 아직 부족한 마지막 것 시퀀스입니다 내가 만들거야 "Sequences"를 마우스 오른쪽 버튼으로 클릭하고 "New Sequence"라고 말하십시오 나는 그 이름을 용서한다 이미 SQL 쿼리에 표시했습니다

seq_tbl_ kontaktformular_ 꾸벅 꾸벅 나는 1 번부터 시작한다 1 씩 증가, 내 최소값은 1입니다 내 최대 가치 여기가 이거 야 마지막에 "OK"를 눌러 확인하십시오

좋습니다 해보자 "귀하의 메시지가 성공적으로 저장되었습니다" 좋아 보인다 이 기호에 대하여 새로 고침 (새로 고침) 할 수 있습니까? 내 데이터가 도착했습니다 완벽한 모든 작품 🙂 보시다시피, 그 차이는 심각하지 않습니다

그러나 밖으로 볼 것이다 몇몇 미묘가있다 다음 비디오에서는 데이터베이스 및 테이블을 만드는 방법을 설명합니다 MySQL 또는 Oracle SQL 명령 다음에 봐요!