ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • php 에서 SQLite3 사용하기 (sqlite)
    PHP 2017. 2. 17. 18:25
    반응형

    안녕하세여~


    이전글 http://itdevelop.kr/93 에서 수정을 거쳐 SQLite3 사용법 입니다.


    php 버전은 5.3 이상이여야하구요~


    아래는 제가 실제로 실무에 적용된 일부 프로그램 입니다. 


    즉, 그냥 갔다 쓰셔도 됩니다. 필요한것만 짜집기 하셔서 사용하세요!


    아래에는 아래와 같은 기능이 들어있습니다.


    - SQLite3 함수 정의 

    - selete(update,delete 문 동일)

    - CREATE TABLE 

    - index 설정



    <?php

    //phpinfo();exit;

    error_reporting(E_ALL);

    ini_set("display_errors", 1);

    /*

    SQLite3 에서는 파일 권한은 별 문제가 안되는듯 함


    */


    $FilePath = "./CPID/srpos.db"; //파일경로 <-- 위치에 파일이 있음을 확인할것!


    $db = new SQLite3($FilePath);  // SQLite3 <-- php 5.3 이상부터는 기본 내장 함수 , 5.26 이 설치된 서버에서는 정의되지 않은 함수라며 오류가 발생했었음!

    //테이블 생성 , 단 테이블이 없을 경우만

    CreateTableFNC($db);



    $results = $db->query("SELECT * FROM VAN  " );

    while ($row = $results->fetchArray()) {

        //var_dump($row);


    echo $row[0]."---".$row[1]."<br/>";

    }


    function CreateTableFNC($db){

    ///인덱스 생성하는 과정에서 문제가 좀 있음 해결할것 2017-02-17  --> 인덱스가 mysql 과는 다르게 CREATE 문에서는 생성이 불가능 했음



    $sql_Client = "CREATE TABLE IF NOT EXISTS  [Client] ( Code TEXT NOT NULL PRIMARY KEY , Name TEXT NOT NULL , MobilePhoneNumber TEXT , PhoneNumber TEXT , MembershipNumber TEXT , Grade INTEGER , Address TEXT , Memo TEXT , JoinDate TEXT , BirthDay TEXT , ReserveAmount INTEGER ) ";

    $db->query($sql_Client);   // 실행


    //중간생략~~~ 필요한것 다 넣으세요~


    $sql_meta = "CREATE TABLE IF NOT EXISTS  android_metadata (locale TEXT) ";

    $db->query($sql_meta);


    // object name reserved for internal use: sqlite_sequence 오류 발생 

    // 파일 열어보면 이미 생성되어있음 

     // sqlite_sequence 가 예약어 인듯함


    //$sql_seq = "CREATE TABLE IF NOT EXISTS  sqlite_sequence(name TEXT,seq INT) ";

    //$db->query($sql_seq);

    //인덱스 설정되어있는데 또 쿼리 실행시 에러남 

    //인덱스 확인 쿼리

    $sql_index_check = "PRAGMA INDEX_LIST('StockLedger'); ";

    $results = $db->query($sql_index_check);

    $indexRow = $results->fetchArray();

    if($indexRow[1] ==""){

    $sql_ = "CREATE INDEX IDX_Date ON [StockLedger] ( Date )";

    $db->query($sql_);

    //echo $indexRow[0]."---".$indexRow[1]."<br/>";

    }


    $sql_index_check = "PRAGMA INDEX_LIST('WorktimeLedger'); ";

    $results = $db->query($sql_index_check);

    $indexRow = $results->fetchArray();

    if($indexRow[1] ==""){

    $sql_ = "CREATE INDEX IDX_StaffId ON [WorktimeLedger] ( StaffId , StartWorkTime )";

    $db->query($sql_);

    $sql_ = "CREATE INDEX IDX_StartWorktime ON [WorktimeLedger] ( StartWorkTime )";

    $db->query($sql_);

    //echo $indexRow[0]."---".$indexRow[1]."<br/>";

    }

    }


    ?>




    반응형

    댓글

Designed by Tistory.