php sqlite3 操作类,php封装的sqlite操作类

b357b59981515ccbb55322f4863cadb4.png

class sqliteDB{

private $sqliteResult;

private $error = '';

private $createTable = <<

/*初始化创建数据表,可创建多个表*/

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文件:

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 =<<

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 "

";

//查询数据

print_r($db->queryDB($sqlSelect));

echo "";

执行后的效果图:17d92a99c1ec2636093395a09d337661.png

8af9082fe3c5741bc77dff4afc4675a3.png

以上内容希望帮助到大家

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值