php封裝的sqlite操做類

  sqlite在php中是默認安裝的本地小型化數據庫,相似於xml的小型數據庫,但sqlite功能更強。
php

sqlite.class.php文件:sql

<?php

   class sqliteDB{

       private $sqliteResult;
       private $error = '';
       private $createTable = <<<TABLE
             /*初始化建立數據表,可建立多個表*/
             CREATE TABLE COMPANY
            (ID       INT PRIMARY KEY NOT NULL,
             NAME     TEXT            NOT NULL,
             AGE      INT             NOT NULL,
             DDRESS   CHAR(50),
             SALARY   REAL);
      
              /*初始化插入數據,可插入多個數據*/
              INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
              VALUES (1, 'Paul', 32, 'California', 20000.00 );
              
TABLE;
       
         function __construct($fileName){
//若是有數據庫,則打開數據庫 //若是沒有數據庫,則建立數據庫,而且生成數據表及插入數據 if(file_exists($fileName)){ $this->sqliteResult = new MyDB($fileName); if(!$this->sqliteResult){ die("Database error:" . $this->sqliteResult->lastErrorMsg()); } }else{ $this->sqliteResult = new MyDB($fileName); if(!$this->sqliteResult){ die("Database error:" . $this->sqliteResult->lastErrorMsg()); } $this->execute($this->createTable); } } //此方法用於「增、刪、改」 function execute($sql){ $this->error= $this->sqliteResult->exec($sql); } //此方法用於「查」 function queryDB($sql){ $result = $this->sqliteResult->query($sql); $i = 0; while($row = $result->fetchArray(SQLITE3_ASSOC) ){ $arr[$i] = $row;
$i += 1; } return $arr; } function __destruct(){ if(!$this->error){ die("Database error:" . $this->sqliteResult->lastErrorMsg()); } $this->sqliteResult->close(); } } class MyDB extends SQLite3{ function __construct($fileName){ $this->open($fileName); } }

 

index.php文件:數據庫

<?php
   include_once("sqlite.class.php");
    
   $sqliteInsert =<<< EOF
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 );

      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );

      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );
EOF;

   $sqliteDelete =<<< EOF
      DELETE from COMPANY where ID=2;
EOF;

    $sqlUpdata =<<< EOF
           UPDATE COMPANY set SALARY = 28666.00 where ID=1;
EOF;

   $sqlSelect =<<<EOF
          SELECT * from COMPANY;
EOF;
    
    $db = new sqliteDB("test.db");
/*
* $db = new sqliteDB(':memory:');

* 若是文件名賦值爲':memory:',那麼 SQLite3::open() 將會在
* RAM 中建立一個內存數據庫,這隻會在 session 的有效時間內持續。

*/
foreach($db->queryDB($sqlSelect) as $value){ if($value["ID"] == 3 OR $value["ID"]== 4){ $isNull = true; } } if(!$isNull){ //增長數據 $db->execute($sqliteInsert); } //刪除數據 $db->execute($sqliteDelete); //修改數據 $db->execute($sqlUpdata); echo "<pre>"; //查詢數據 print_r($db->queryDB($sqlSelect)); echo "</pre>";

 執行後的效果圖:session

相關文章
相關標籤/搜索