IT/development

[php] php <-> cubrid driver 연동

알 수 없는 사용자 2022. 11. 23. 07:04
반응형

목차

    image source:https://unsplash.com/s/photos/php

    php <-> cubrid driver 연동😄

    php와 cubrid driver를 연동하면서 내가 나중에 보기 위해 기록함

    보통 php는 apm(apache php mysql) 세트로 많이 사용한다. 즉 php에서는 보통 mysql을 많이 사용한다.

    이번 프로젝트에서는 php와 cubrid연동할 일이 있어서 삽질을 좀 하다가 잊지 않기 위해 기록한다.

     

    간단하게 정리하면 아래와 같다.

    1. php 설치🤗

    ※ windows xampp 설치는 아래 글 참조

     

    [php] Windows 10 Laravel 설치...

    프로젝트에서 php 사이트를 하나 맡게되어 로컬pc에 라라벨을 설치해 보면서 기록을 남기는 중 전체 프로세스😃 php 설치😎 라라벨 설치하기 위해선 사전에 미리 php가 컴퓨터에 설치되어 있어야

    devlsy.tistory.com

     

    2. php 버전 확인🥰

    1. php 버전 확인

    아래처럼 함수 작성 후 페이지 호출 시 아래처럼 설치된 php 버전이 표시된다.

    내 컴퓨터에는 7.4.27버전이 설치된 걸 확인 할 수 있다.

     

    3. php_cubrid.dll, pdo_cubrid.dll(버전에 따라 파일명은 상이할 수 있음)😎

    아래 cubrid 공식 홈페이지 들어가서 dll파일을 다운 받는다.

     

    CUBRID Foundation: Downloads

    Join the CUBRID Project on

    www.cubrid.org

     

    2번에서 확인 한 php버전에 맞는 dll파일을 다운 받아야 한다.(php bit와 cubrid dll파일 버전도 맞춰야 함)

     

    4. cubrid관련 dll파일을 php에서 사용하도록 설정😉

    다운 받은 dll파일 2개를 php ext폴더로 복사한다.

     

    아래경로는 xampp 기준으로 php extension폴더임(php.ini에 경로 나와있음)

    아래경로에 dll파일을 복사함

     

    그 후 복사한 dll파일을 php에서 사용할 수 있도록 설정 파일(php.ini)에 아래처럼 추가해줌

     

    그 후 apache 재시작

     

    5. db 연동 테스트😲

    cubrid가 이미 동작중이라는 가정하에 연결 테스트를 하기 위해 "C:\xampp\htdocs\dashboard\phpinfo.php"를 아래처럼 코드를 고친 후 페이지를 호출해본다.

    PDO 이용 방식

    혹은 테스트 용 php를 하나 만들어서 호출 테스트를 해도 된다.

    <?php
    $database ="TEST";
    $host ="xx.xx.x.xxx";
    $port ="33000";//use default value
    $username ="dba";
    $password ="TEST";
    $sql = "SELECT * FROM TEST limit 100";
    $conn_str ="cubrid:dbname=".$database.";host=".$host.";port=".$port;
    	
    try{
    //cubrid:host=localhost;port=33000;dbname=demodb
    $conn_str ="cubrid:dbname=".$database.";host=".$host.";port=".$port;
    echo"PDO connect string: ".$conn_str." ";
    $db =new PDO($conn_str, $username, $password );
    echo"PDO connection created ok!"." ";
    
    // 테이블 데이터 출력
    foreach($db->query($sql)as $row){
    echo $row['col1'].' - '. $row['col2'].' - '. $row['col3'].' + "<br>"';
    }
    //$db = null;//disconnect
    }catch(PDOException $e){
    echo"Error: ".$e->getMessage()."
    ";
    }
    ?>

     

    cubrid_connect() 이용 방식

    <?php
    $con = cubrid_connect("xx.xx.x.xxx", 33000, "xxx", "dba", "xxxx");
    if($con) {
        $req = cubrid_execute($con, "SELECT * from xxxx");
        if($req) {
            while ($row = cubrid_fetch($req)) {
                echo $row["id"];
                echo $row["name"];
            }
            cubrid_close_request($req);
        }
        cubrid_disconnect($con);
    }

    연결이 정상적으로 될 경우 12 line의 "PDO connection created ok!"가 표시될 거고 그게 아니면 15 line의 에러 메시지가 표시될거다.

    호출 결과 아래처럼 정상 접속되었고 테이블의 데이터도 표시된다.

     

    반응형