php 仓储 sqlite_详解php封装db类连接sqlite3

sqlite3_open是sqlite数据库的api函数(C/C++),作用是打开(或创建)一个数据库文件。本文主要和大家分享php封装db类连接sqlite3 的知识,希望能帮助到大家。<?php

class dbManager{

public $db;

function __construct(){

if(!file_exists('./db.php')){

$this->init();

return;

}

$this->db = new SQLite3('./db.php');

}

function init(){

$this->db = new SQLite3('./db.php');

// TODO:

}

function changes(){

return $this->db->changes();

}

function query($sql,$param=null,$memb=null){

$stmt=$this->db->prepare($sql);

if(!$stmt)

return false;

if($param){

if(is_array($param)){

for($i=0;$i

$stmt->bindValue($i+1,$param[$i]);

}else{

$stmt->bindValue(1,$param);

}

}

$rs=$stmt->execute();

if(!$rs){

$stmt->close();

return false;

}

$arr=$rs->fetchArray(SQLITE3_NUM);

$rs->finalize();

$stmt->close();

if(!$arr)

return null;

if(!$memb)

return $arr;

$res=array();

for($i=0;$i

$res[$memb[$i]]=$arr[$i];

}

return $res;

}

function queryAll($sql,$param=null,$memb=null){

$stmt=$this->db->prepare($sql);

if(!$stmt)

return false;

if($param){

if(is_array($param)){

for($i=0;$i

$stmt->bindValue($i+1,$param[$i]);

}else{

$stmt->bindValue(1,$param);

}

}

$rs=$stmt->execute();

if(!$rs){

$stmt->close();

return false;

}

$res=array();

while($arr=$rs->fetchArray(SQLITE3_NUM)){

if(!$memb) {

$res[]=$arr;

continue;

}

if(count($memb)==1 && $memb[0]==null){

$res[]=$arr[0];

continue;

}

$it=array();

for($i=0;$i

$it[$memb[$i]]=$arr[$i];

}

$res[]=$it;

}

$rs->finalize();

$stmt->close();

return $res;

}

function querySingle($sql,$param=null){

$res=$this->query($sql,$param);

if(!$res)

return false;

return $res[0];

}

function querySingleAll($sql,$param=null){

$stmt=$this->db->prepare($sql);

if(!$stmt)

return false;

if($param){

if(is_array($param)){

for($i=0;$i

$stmt->bindValue($i+1,$param[$i]);

}else{

$stmt->bindValue(1,$param);

}

}

$rs=$stmt->execute();

if(!$rs){

$stmt->close();

return false;

}

$res=array();

while($arr=$rs->fetchArray(SQLITE3_NUM)){

$res[]=$arr[0];

}

$rs->finalize();

$stmt->close();

return $res;

}

function exec($sql,$param=null){

$stmt=$this->db->prepare($sql);

if(!$stmt)

return false;

if($param){

if(is_array($param)){

for($i=0;$i

$stmt->bindValue($i+1,$param[$i]);

}else{

$stmt->bindValue(1,$param);

}

}

$rs=$stmt->execute();

if($rs) {

$res=true;

$rs->finalize();

}else{

$res=false;

}

$stmt->close();

return $res;

}

function begin(){

return $this->exec('BEGIN');

}

function rollback(){

return $this->exec('ROLLBACK');

}

function commit(){

return $this->exec('COMMIT');

}

function escapeString($s){

return $this->db->escapeString($s);

}

//最新插入的id

function lastInsertRowID(){

return $this->db->lastInsertRowID();

}

function lastErrorMsg (){

return $this->db->lastErrorMsg();

}

}

?>

PDO支持数据库移植,如果你的部署将来有多种数据库,那就用它了.同时,PDO是C设计的,执行效率较高.他已经封装为PHP的扩展库组件了.运行快,效率高

相关推荐:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值