php sqlite 封装,php封装db类连接sqlite3数据库的方法实例

本文介绍了如何在PHP中封装一个用于SQLite3数据库操作的db类,包括连接、查询、事务处理等功能。示例代码展示了一个简单的dbManager类,支持SQL查询、预处理语句、事务开始、回滚和提交等操作。文章还提到了PDO作为更通用的数据库适配器,适合在多种数据库间移植,并提供了相关PHP PDO DB类的参考资料。
摘要由CSDN通过智能技术生成

前言

SQLite3扩展名在PHP 5.3.0+以上都会默认启用。可以在编译时使用--without-sqlite3来禁用它。

Windows用户可通过启用php_sqlite3.dll才能使用此扩展。 php_sqlite3.dll默认包含在PHP 5.3.0之后的PHP发行版中。

有关详细的安装说明,请查看PHP教程及其官方网站。

本文主要介绍了关于php封装db类连接sqlite3的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

示例代码:

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的扩展库组件了.运行快,效率高

更多关于PHP用PDO如何封装简单易用的DB类的内容可以参考这篇文章:https://www.jb51.net/article/119880.htm

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对聚米学院的支持。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值