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


Posted in PHP onDecember 19, 2017

前言

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

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

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

本文主要介绍了关于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<count($param);$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<count($memb);$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<count($param);$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<count($memb);$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<count($param);$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<count($param);$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://3water.com/article/119880.htm

总结

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

PHP 相关文章推荐
如何做到多笔资料的同步
Oct 09 PHP
php初学者写及时补给skype用户充话费的小程序
Nov 02 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
May 16 PHP
thinkphp 一个页面使用2次分页的实现方法
Jul 15 PHP
9个实用的PHP代码片段分享
Jan 22 PHP
php通过ksort()函数给关联数组按照键排序的方法
Mar 18 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
Sep 22 PHP
php简单实现多维数组排序的方法
Sep 30 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
Dec 09 PHP
php中实现字符串翻转的方法
Feb 22 PHP
Yii2压缩PHP中模板代码的输出问题
Aug 28 PHP
phpfpm的作用和用法
Oct 10 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 #PHP
PHP实现的最大正向匹配算法示例
Dec 19 #PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 #PHP
PHP实现的折半查找算法示例
Dec 19 #PHP
PHP实现的二分查找算法实例分析
Dec 19 #PHP
PHP实现git部署的方法教程
Dec 19 #PHP
PHP递归实现快速排序的方法示例
Dec 18 #PHP
You might like
PHP 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
php 传值赋值与引用赋值的区别
2010/12/29 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
html中table数据排序的js代码
2011/08/09 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
基于JQuery的列表拖动排序实现代码
2013/10/01 Javascript
jQuery动态添加、删除元素的方法
2014/01/09 Javascript
使用js获取图片原始尺寸
2014/12/03 Javascript
javascript实现验证身份证号的有效性并提示
2015/04/30 Javascript
javascript实现手机震动API代码
2015/08/05 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
最通俗易懂的javascript变量提升详解
2017/08/05 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
2017/08/23 Javascript
Vue2.5通过json文件读取数据的方法
2018/02/27 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
javascript中如何判断类型汇总
2019/05/14 Javascript
Preload基础使用方法详解
2020/02/03 Javascript
原生JavaScript实现弹幕组件的示例代码
2020/10/12 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
Python小进度条显示代码
2019/03/05 Python
节日快乐! Python画一棵圣诞树送给你
2019/12/24 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
python 实现两个npy档案合并
2020/07/01 Python
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
初三学生个人自我评定
2014/04/06 职场文书
大学生英语演讲稿
2014/04/24 职场文书
爱耳日活动总结
2014/04/30 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
新学期感想
2015/08/10 职场文书
分析Netty直接内存原理及应用
2021/06/14 Java/Android