728x90
300x250

[PHP] Oracle, MySQL - PDO 사용방법

 

간결하게 요약해서 작성해보았다.

 


1. Oracle, MySQL 데이터베이스 설계하기

 

데이터베이스를 하나 생성한다.

Member를 생성한다.

 

 

그림 1) Oracle SQL Developer에서 Member 테이블 생성하기(Oracle 18c Express Edition)

 

 

그림 2) HeidiSQL에서 Member 테이블 생성하기(MySQL)

 

 
  CREATE TABLE "C##RABBITSUN2"."MEMBER"
   ( "ID" VARCHAR2(20 BYTE) NOT NULL ENABLE,
 "SUBJECT" VARCHAR2(20 BYTE),
  CONSTRAINT "MEMBER_PK" PRIMARY KEY ("ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"  ENABLE
   ) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS" ;

  CREATE OR REPLACE EDITIONABLE TRIGGER "C##RABBITSUN2"."MEMBER_TRG"
BEFORE INSERT ON MEMBER
FOR EACH ROW
BEGIN
  <<COLUMN_SEQUENCES>>
  BEGIN
       IF INSERTING AND :NEW.ID IS NULL THEN
           SELECT MEMBER_SEQ.NEXTVAL INTO :NEW.ID FROM SYS.DUAL;
           END IF;
  END COLUMN_SEQUENCES;
END;
/
ALTER TRIGGER "C##RABBITSUN2"."MEMBER_TRG" ENABLE;

 Oracle SQL

 CREATE TABLE `member` (
     `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
     `subject` VARCHAR(50) NULL DEFAULT NULL,
      PRIMARY KEY (`id`)
 )
 COLLATE='utf8_general_ci'
 ENGINE=InnoDB
 AUTO_INCREMENT=1;

 MySQL SQL

 

 

 


2. Oracle, MySQL - PDO 사용방법(소스코드)

 

<?php

/*
 * Subject: PDO
 * Created Date: 2019-12-10
 * Author by: 도도(Dodo) / rabbitsun2@gmail.com
 * Description:
 *
 * Reference:
 * 
 */

include 'MySQLDB.php';
include 'OracleDB.php';

$orcl = new OracleDB('127.0.0.1', 'c##rabbitsun2', '1234');
$orcl->connect();

// SELECT 문(OracleDB)
$query = "SELECT * FROM MEMBER";
$list = $orcl->select($query);

/*
foreach($list as $row){
   
    echo $row["ID"] . "/";
    echo $row["SUBJECT"] . "<br>";
   
}
*/

// INSERT 문(OracleDB)
//$subject = '연습';
//$result = $orcl->insert($subject);

$mysqlDB = new MySQLDB('127.0.0.1', 'rabbit2me', '1234', 'rabbit2me');
$mysqlDB->connect();

$list = $mysqlDB->select($query);

foreach($list as $row){
   echo $row["id"] . "/";
   echo $row["subject"] . "<br>";
}
 
$subject = '연습';
$result = $mysqlDB->insert($subject);

?>


[소스코드: index.php]

 

?>

class MySQLDB{
   
    private $hostName;
    private $userName;
    private $passwd;
    private $tns;
    private $dbh;
   
    public function __construct($hostName, $userName, $passwd, $dbname){
       
        $this->tns = "mysql:host=$hostName;dbname=$dbname";
       
        $this->hostName = $hostName;
        $this->userName = $userName;
        $this->passwd = $passwd;
       
       
    }
   
    public function __destruct(){
        unset($this->dbh);
    }
   
    public function connect(){
       
        $tns = $this->tns;
        $db_username = $this->userName;
        $db_password = $this->passwd;
       
        try{
            $this->dbh = new PDO($this->tns, $db_username, $db_password,
                array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
            //echo "참";
        }catch(PDOException $e){
            echo ($e->getMessage());
        }
       
    }
   
    public function select($query){
       
        $stmt = NULL;
        $dbh = $this->dbh;
       
        if ( $dbh != NULL ){
            $stmt = $dbh->prepare($query);
            $stmt->execute();
            $list = $stmt->fetchAll();
           
            return $list;
        }
       
        return NULL;
       
    }
   
    public function insert($subject){
       
        $stmt = NULL;
        $dbh = $this->dbh;
        $query = "INSERT INTO member(subject) VALUES(:subject)";
       
        if ( $dbh != NULL ){
            $stmt = $dbh->prepare($query);
            $stmt->bindParam(':subject', $subject);
            $stmt->execute();
           
            return true;
        }
       
        return false;
       
    }
   
}

?>


[소스코드: MySQLDB.php]

 

?>
class OracleDB{
   
    private $hostName;
    private $userName;
    private $passwd;
    private $tns;
    private $dbh;
   
    public function __construct($hostName, $userName, $passwd){
       
        $this->tns = "(DESCRIPTION =
            (ADDRESS_LIST =
              (ADDRESS = (PROTOCOL = TCP)(HOST = $hostName)(PORT = 1521))
            )
            (CONNECT_DATA =
              (SERVICE_NAME = xe)
            )
        )";
       
        $this->hostName = $hostName;
        $this->userName = $userName;
        $this->passwd = $passwd;
        $this->dbh = NULL;
       
    }
   
    public function __destruct(){
        unset($this->dbh);
    }
   
    public function connect(){
       
        $tns = $this->tns;
        $db_username = $this->userName;
        $db_password = $this->passwd;
       
        try{
            $this->dbh = new PDO("oci:dbname=". $tns . ";charset=UTF8", $db_username, $db_password);
            //echo "참";
        }catch(PDOException $e){
            echo ($e->getMessage());
        }
       
    }
   
    public function select($query){
       
        $stmt = NULL;
        $dbh = $this->dbh;
       
        if ( $dbh != NULL ){
            $stmt = $dbh->prepare($query);
            $stmt->execute();
            $list = $stmt->fetchAll();
           
            return $list;
        }
       
        return NULL;
       
    }
   
    public function insert($subject){
        $stmt = NULL;
        $dbh = $this->dbh;
        $query = "INSERT INTO MEMBER(SUBJECT) VALUES(:subject)";
       
        if ( $dbh != NULL ){
            $stmt = $dbh->prepare($query);
            $stmt->bindParam(':subject', $subject);
            $stmt->execute();
           
            return true;
        }
       
        return false;
       
    }
   
}

?>


[소스코드: OracleDB.php]

반응형
728x90
300x250
[PC활용] Oracle 11 Later(이상) - SQLPlus (접속, 계정생성, 계정삭제, 패스워드 수정)

 

Oracle 11g 이상에서 SQLPlus로 접속, 계정생성, 계정삭제, 패스워드 수정하는 방법에 대해 소개하겠다.

 


1. 명령 프롬프트 실행하기

 

실행 -> "cmd"

 

그림 1) cmb(명령 프롬프트) 켜기

 

 

 

 

그림 2) Oracle Database 18c Express Edition - SQLPlus

 


2. 주요 명령어

 

● 계정생성

'create user 'C##유저명' identified by 패스워드  명령어로 계정을 생성한다. (안 되면 아래의 형태로 시도해볼 것)
create user c##계정이름 identified by 비밀번호; 


● 권한부여

- 'grant connect, dba, resource to 유저명'  명령어로 계정에 권한을 준다.


● 계정 패스워드 변경
- 'alter user 유저명 identified by 패스워드'  명령어로 계정의 패스워드를 변경한다.


●계정 삭제

- 'drop user 유저명 cascade' 명령어로 계정을 삭제한다.

반응형
728x90
300x250

[PC활용] Oracle 18g Express Edition 설치하기

 

Oracle 18g Express Edition 설치하는 방법에 대해서 소개하겠다.

 

[작성 환경]
Microsoft Windows 10 64bit

 


1. Oracle 18g Express Edition 내려받기

 

https://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index.html

 


2. Oracle 18g Express Edition 설치하기

 

 

그림 1) Oracle Database 18c 압축풀기

 

그림 1에서 "setup.exe"를 더블 클릭해준다.

 

 

그림 2) Oracle Database 18c 설치하기

 

잠시 기다린다.

 

 

그림 3) Oracle Database 18c 설치하기

 

"다음(N)"을 클릭한다.

 

 

그림 4) Oracle Database 18c 설치하기

 

라이선스를 읽어본 후 "다음(N)"을 클릭한다.

 

 

그림 5) Oracle Database 18c 설치하기

 

폴더 위치를 지정 후 "다음(N)"을 클릭한다.

 

 

그림 6) Oracle Database 18c 설치하기

 

그림 6에서 데이터베이스 비밀번호를 입력해준다.

그리고 "다음(N)"을 클릭한다.

 

 

그림 7) Oracle Database 18c 설치하기

 

환경 설정에 대한 내용을 검토 후 "설치(I)"를 클릭한다.

 

 

그림 8) Oracle Database 18c 설치하기

 

그림 9) 방화벽에 관한 사항 - Oracle 18c Express Edtion

 

방화벽에 대한 사항이 나온다. "액세스 허용(A)"을 해준다.

 

 

그림 10) Oracle 18c 설치하기

 

잠시 기다리도록 한다.

 

 

그림 11) Oracle 18c 설치하기

 


3. Oracle 18g Express Edition 웹에서 실행하기

오라클 18g을 웹에서 실행한 모습이다.

https://localhost:5500/em

 

그림 12) 웹에서 실행하는 오라클 18g Express Edtion

 

 

반응형
728x90
300x250

[PC활용] Oracle SQL Developer 설치하기(19.2)

 

Oracle 18g Express Edition을 설치하면, Oracle SQL Developer가 없기 때문에 추가적으로 설치해야 한다.

그래서 이번에는 Oracle SQL Developer 설치에 대해서 소개하겠다.

 


1. SQL Developer 다운로드 받기

 

https://www.oracle.com/kr/tools/downloads/sqldev-v192-downloads.html

 

 

그림 1) SQL Developer 19.2.1 웹 사이트 - Oracle

 


2. SQL Developer 실행하기

 

sqldeveloper.exe를 더블클릭한다.

 

 

그림 2) SQL Developer 실행하기

 

 

그림 3) SQL Developer 실행하기

 

 

그림 4) SQL Developer 실행하기

 

 

그림 5) SQL Developer 실행하기

 


3. "c##계정명"으로 로그인해보기 그리고 테이블 만들기

 

그림 6, 그림 7은 "C##계정명" 계정이 존재한다고 가정하고 작성한 것이다.

계정을 만들고 진행하면 된다.

 

 

그림 6) Oracle Developer 로그인

 

그림 7) 테이블 만들기의 예 - Oracle

 


* 참고자료(Reference)

 

1. Oracle SQL Developer Downloads | Oracle 대한민국, Last Modified 2019-09-12, Accessed by 2019-12-10, https://www.oracle.com/kr/tools/downloads/sqldev-v192-downloads.html

반응형

+ Recent posts