sqlite在php中是默认安装的本地小型化数据库,类似于xml的小型数据库,但sqlite功能更强。

sqlite.class.php文件:

<?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>";

执行后的效果图:

php封装的sqlite操作类的更多相关文章

  1. PHP基于PDO实现的SQLite操作类

    <?php // sqlite分页类 class SqliteDB{ public function __construct(){ // 初始化数据库,并且连接数据库 数据库配置 $this-& ...

  2. 封装一个redis操作类来操作hash格式

    最近项目要用redis,依然是基于tp3.2. 发现thinkphp3.2自带的缓存类并不好使用,就自己封装了一个 目前只支持hash格式,其他数据类型的操作后面用到的时候再补充 <?php / ...

  3. php 封装mysql 数据库操作类

    <?phpheader('content-type:text/html;charset=utf-8');//封装mysql   连接数据库php_mysql//封装mysql   连接数据库ph ...

  4. php 封装Mysql数据库操作类

    花了点时间写了个基于php5.3的Mysql类 $mysql = new Mysql('host','user','pass','db') bool Mysql::insert("表&quo ...

  5. 使用ES6 Class封装的IndexDB 操作类,并实现模糊搜索

     封装如下: indexDBOperate.js export class IndexDBOperate { db = null // 数据库实例 databaseName = null // 数据库 ...

  6. Sqlite操作帮助类

      sqlite帮助类 using System; using System.Collections.Generic; using System.Linq; using System.Text; us ...

  7. 我的DbHelper数据操作类

    其实,微软的企业库中有一个非常不错的数据操作类了.但是,不少公司(起码我遇到的几个...),对一些"封装"了些什么的东西不太敢用,虽然我推荐过微软的企业库框架了...但是还是要&q ...

  8. DbHelper数据操作类

    摘要:本文介绍一下DbHelper数据操作类 微软的企业库中有一个非常不错的数据操作类.但是,不少公司(起码我遇到的几个...),对一些"封装"了些什么的东西不太敢用,虽然我推荐过 ...

  9. 我的DbHelper数据操作类(转)

    其实,微软的企业库中有一个非常不错的数据操作类了.但是,不少公司(起码我遇到的几个...),对一些"封装"了些什么的东西不太敢用,虽然我推荐过微软的企业库框架了...但是还是要&q ...

随机推荐

  1. luogu2827 [NOIp2016]蚯蚓 (模拟)

    可以直观地想到用优先队列来做,但数据范围是O(n)的 然后我们发现,因为我们每次挑出来的蚯蚓是单调的,所以把每个切成两段后,那两段也是对应单调的 也就是说,算上最一开始的蚯蚓,我们一共维护三个队列,三 ...

  2. centos7安装redis的正确姿势

    目前redis5已经发布,Redis 5 是 Redis 引入流数据类型(Stream data type)的第一个版本.按照官方的说法,不使用该特性的用户在生产环境中使用 Redis 5 会有更好的 ...

  3. 使用debootstrap制作debian-jessie系统docker镜像

    先看一下Docker官网提示:In general, you'll want to start with a working machine that is running the distribut ...

  4. A1067. Sort with Swap(0,*)

    Given any permutation of the numbers {0, 1, 2,..., N-1}, it is easy to sort them in increasing order ...

  5. html中空格字符实体整理

    摘要 浏览器总是会截短 HTML 页面中的空格.如果您在文本中写 10 个空格,在显示该页面之前,浏览器会删除它们中的 9 个.如需在页面中增加空格的数量,您需要使用 字符实体. 本篇就单介绍空格的字 ...

  6. laravel Schema 查看索引是否存在

    Schema::connection('')->table($tableName, function (Blueprint $table) { $sm = Schema::getConnecti ...

  7. centos7使用kubeadm配置高可用k8s集群

    CountingStars_ 关注 2018.08.12 09:06* 字数 464 阅读 88评论 0喜欢 0 简介 使用kubeadm配置多master节点,实现高可用. 安装 实验环境说明 实验 ...

  8. my phone blackberry classic / passport / priv / keyone

    smy blackberry classic PIN: 2BF66A72 / 查看手机位置https://protect.blackberry.com/protect/mydevice#BlackBe ...

  9. bzoj千题计划306:bzoj2342: [Shoi2011]双倍回文 (回文自动机)

    https://www.lydsy.com/JudgeOnline/problem.php?id=2342 解法一: 对原串构建回文自动机 抽离fail树,从根开始dfs 设len[x]表示节点x表示 ...

  10. Linux 命令详解(九)轻易删除OpenSSL 的后果

    警告自己,不要轻易的去删除系统的软件 1.composer自动更新出现错误 www@TinywanAliYun:~/web/go-study-line$ composer self-update Ke ...