<?php
 
class SQLiteWrap {
 
    /***************************************************************************************
 
 
    Wrapper class for SQLite communications
 
    
 
    example for SELECT query:
 
        $myData = new SQLiteWrap($DbLoc, $SQL_str);
 
        $myData-> runQuery();
 
        $bodyArray = $myData->getQryResults();
 
    
 
    example for INSERT/UPDATE/DELETE/CREATE TABLE queries
 
        $myData = new SQLiteWrap($DbLoc, $SQL_str);
 
        $myData-> execQuery();
 
        $bodyArray = $myData->getQryResults();  --> should return osingle piece of data.
 
    
 
    - based on source: http://henryranch.net/software/ease-into-sqlite-3-with-php-and-pdo/
 
 
    ----------------------------------------------------------------------------------------
 
    Date        Author    Comments
 
    ----------------------------------------------------------------------------------------
 
    07-aug-11    PJH        Created Class
 
    
 
    ***************************************************************************************/
 
    
 
    private $dbLoc; // = "../SQLite/FOAM.sqlite";
 
    private $SQLStr;
 
    private $qryResults; // multi dim-array
 
    private $dbPDO;
 
    
 
    private function setQryResults($value){
 
        $this->qryResults = $value;
 
    }
 
    public function getQryResults() {
 
        return $this->qryResults;
 
    }
 
 
    // Initialize a new instance of tables    
 
    function __construct($dbLoc, $SQL_str) {
 
        $this->dbLoc = $dbLoc;
 
        $this->dbPDO = new PDO("sqlite:".$this->dbLoc);
 
        $this->SQLStr = $SQL_str;
 
    }
 
    
 
    public function runQuery() {        
 
        // run your SELECT query
 
        SQLiteWrap::openDB();
 
        $db = $this->dbPDO;
 
        
 
        // for troubleshooting query problems. 
 
        // maybe setup a bit to turn it on/off
 
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
 
        // execute query
 
        $result = $db->query($this->SQLStr) or die("<font color='red'>query failed!</font>");
 
        
 
        //push query result in array
 
        $myArray = array();
 
        
 
        foreach($result as $row) {
 
          $myArray[] = $row;
 
        }
 
                
 
        $this->setQryResults($myArray);
 
        
 
        // close the database connection
 
        SQLiteWrap::closeDB();
 
 
    }
 
 
    public function ExecQuery() {        
 
        // run all other queries
 
        $db = $this->dbPDO;
 
        SQLiteWrap::openDB();
 
        
 
        // execute query
 
        $result = $db->exec($this->SQLStr);
 
 
        //push query result in array
 
        foreach($result as $row){
 
            $bodyArray[] = $row;
 
        }
 
        
 
        // close the database connection
 
        SQLiteWrap::closeDB();
 
        
 
        $this->setQryResults($bodyArray);
 
    }
 
    
 
    private function closeDB() {
 
        // close the database connection
 
        $this->dbPDO = NULL;
 
    }
 
 
    private function openDB() {
 
        // open the database connection
 
        $db = $this->dbPDO;
 
        if (!@db) {
 
            die("<font color=red>DB (".$this->dbLoc.") not found.</font>");
 
        }
 
    }
 
}
 
 |