PHP

php 에서 SQLite3 사용하기 (sqlite)

지니 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/>";

}

}


?>




반응형