IT/development

[php] php <-> cubrid driver ์—ฐ๋™

์•Œ ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž 2022. 11. 23.

๋ชฉ์ฐจ

    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์˜ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ ๊ฑฐ๋‹ค.

    ํ˜ธ์ถœ ๊ฒฐ๊ณผ ์•„๋ž˜์ฒ˜๋Ÿผ ์ •์ƒ ์ ‘์†๋˜์—ˆ๊ณ  ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋„ ํ‘œ์‹œ๋œ๋‹ค.

     

    ๋Œ“๊ธ€