php封装的sqlite操作类
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操作类的更多相关文章
- PHP基于PDO实现的SQLite操作类
<?php // sqlite分页类 class SqliteDB{ public function __construct(){ // 初始化数据库,并且连接数据库 数据库配置 $this-& ...
- 封装一个redis操作类来操作hash格式
最近项目要用redis,依然是基于tp3.2. 发现thinkphp3.2自带的缓存类并不好使用,就自己封装了一个 目前只支持hash格式,其他数据类型的操作后面用到的时候再补充 <?php / ...
- php 封装mysql 数据库操作类
<?phpheader('content-type:text/html;charset=utf-8');//封装mysql 连接数据库php_mysql//封装mysql 连接数据库ph ...
- php 封装Mysql数据库操作类
花了点时间写了个基于php5.3的Mysql类 $mysql = new Mysql('host','user','pass','db') bool Mysql::insert("表&quo ...
- 使用ES6 Class封装的IndexDB 操作类,并实现模糊搜索
封装如下: indexDBOperate.js export class IndexDBOperate { db = null // 数据库实例 databaseName = null // 数据库 ...
- Sqlite操作帮助类
sqlite帮助类 using System; using System.Collections.Generic; using System.Linq; using System.Text; us ...
- 我的DbHelper数据操作类
其实,微软的企业库中有一个非常不错的数据操作类了.但是,不少公司(起码我遇到的几个...),对一些"封装"了些什么的东西不太敢用,虽然我推荐过微软的企业库框架了...但是还是要&q ...
- DbHelper数据操作类
摘要:本文介绍一下DbHelper数据操作类 微软的企业库中有一个非常不错的数据操作类.但是,不少公司(起码我遇到的几个...),对一些"封装"了些什么的东西不太敢用,虽然我推荐过 ...
- 我的DbHelper数据操作类(转)
其实,微软的企业库中有一个非常不错的数据操作类了.但是,不少公司(起码我遇到的几个...),对一些"封装"了些什么的东西不太敢用,虽然我推荐过微软的企业库框架了...但是还是要&q ...
随机推荐
- Arch Linux中禁用UTC解决双系统时间问题
原因 Windows双系统时间不统一在于时间表示有两个标准:localtime 和 UTC(Coordinated Universal Time) .UTC 是与时区无关的全球时间标准.尽管概念上有差 ...
- C# 哈希表&列队&栈
哈希表://不规定类型,不规定长度,不规定键值 Hashtable ht = new Hashtable(); //定义 ht[1] = 1; ht['a'] = "abc"; ...
- Flash10下复制到剪切板的一种新方法
web开发中常常要实现“复制到剪切板”功能.这个功能很实用,但是由于安全问题,浏览器的限制越来越严,实现的方法也越来越有限了.Firefox默认下不能直接通过Javascript操作剪切板,必须开启相 ...
- ref实现输入框聚焦
关于ref我们是怎么理解的呢? 我们可以通过React.createRef()创建一个 ref节点,并将其打印出来. 代码如下: import React,{Component} from 'reac ...
- mybatis插入数据后返回自增的主键id
在插入数据时候想自动返回mysql的自增的主键,需要在mapper.xml中配置下: <insert id="insert" parameterType="com. ...
- xvfb-run: error: xauth command not found 解决方式
解决方式转于:http://tokanao.com/blog/2016/07/13/blog.html 错误提示 array(2) { [0]=> string(27) "which: ...
- 读取Easy UI的DATa grid里面的所有数据
目前我知道的有两种方法: 1.读取行数,循环读出 $("#btnEcxel").click(function () { var rows = $('#tbVehicleList') ...
- 学习windows编程 day5 之按键消息
case WM_KEYDOWN://带sys的按键消息大多是系统需要自己处理的,我们一般不需要,默认处理 //wParam 指定按键的虚拟键代码 //lParam 指定技术,扫描码,闲钱状态,转换状态 ...
- Linux记录-进程数和句柄数调整
1.cat /etc/security/limits.confwebuser soft nofile 65535webuser hard nofile 65535webuser soft nproc ...
- SQL记录-rowid去重
select * from a where rowid=(select max(rowid) from a)