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. luogu1712 区间 (尺取法+线段树)

    先把区间按照长度从小到大排序,然后用尺取法来做 大概就是先一点一点把区间算上 直到某个点被覆盖了m次,然后一点一点把最前面的区间扔掉,直到没有点被覆盖m次,这样反复做(相当于是它选择的区间左右端点在那 ...

  2. Android设置RadioButton在文字的右边

    效果图如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andro ...

  3. apigateway-kong(七)配置说明

    这一部分应该在最开始介绍,但是我觉得在对kong有一定了解后再回头看下配置,会理解的更深刻.接下来对这个配置文件里的参数做个详细的解释便于更好的使用或优化kong网关. 目录 一.配置加载 二.验证配 ...

  4. 获取CPU序列号、网卡MAC地址、硬盘序列号

    <pre name="code" class="csharp"> using System; using System.Collections; u ...

  5. python os模块 常用命令

    python编程时,经常和文件.目录打交道,这是就离不了os模块.os模块包含普遍的操作系统功能,与具体的平台无关.以下列举常用的命令 1. os.name()——判断现在正在实用的平台,Window ...

  6. 基于URL的HAProxy负载均衡设置

    例子包括ACL的url_beg. url_beg提交URL中使用的字符串相匹配. 使用URL /blog(cnblog/api)所有请求重定向到WEB服务器的6200端口.所有其他请求将重定向到服务器 ...

  7. idea工具常见问题汇总

    1.隐藏idea创建项目自带的文件及文件夹比如.iml和.idea文件夹 Settings→Editor→File Types 在下方的忽略文件和目录(Ignore files and folders ...

  8. Java编程思想 学习笔记10

    十.内部类  可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起,并控制位于内部的类的可视性.然而必须要了解,内部类和组合是 ...

  9. 字典(Dictionary)

    字典(Dictionary) 字典是一种可变的容器模型,由键值对组成,键和值用冒号分隔,用花括号括起来: d = {key1 : value1, key2 : value} 字典的值可以是任何类型的数 ...

  10. git初学 常用命令

    初学备忘: MAC 下 clone 项目的时候  记得  sudo -s  输入密码 获得 管理员权限,普通权限看不到 .babelrc 等 点开头的文件 ____——____——____——____ ...