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 相关文章推荐
PHP的FTP学习(四)
Oct 09 PHP
PHP分页显示制作详细讲解
Dec 05 PHP
php 文件上传类代码
Aug 06 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
Jul 31 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
Dec 07 PHP
linux系统下php安装mbstring扩展的二种方法
Jan 20 PHP
学习php设计模式 php实现合成模式(composite)
Dec 08 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
May 20 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
php微信公众号开发之校园图书馆
Oct 20 PHP
PHP文件后缀不强制为.php方法
Mar 31 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 #PHP
PHP实现的最大正向匹配算法示例
Dec 19 #PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 #PHP
PHP实现的折半查找算法示例
Dec 19 #PHP
php之header的不同用法总结(实例讲解)
Nov 28 #PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
Nov 28 #PHP
PHP命令空间namespace及use的用法小结
Nov 27 #PHP
You might like
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
PHP 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
PHP中数组的三种排序方法分享
2012/05/07 PHP
PHP连接Access数据库的方法小结
2013/06/20 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
多浏览器支持的右下角浮动窗口
2010/04/01 Javascript
javascript与CSS复习(《精通javascript》)
2010/06/29 Javascript
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
javascript设计模式 接口介绍
2012/07/24 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
基于jQuery日历插件制作日历
2016/03/11 Javascript
javascript实现起伏的水波背景效果
2016/05/16 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
微信小程序自定义弹窗滚动与页面滚动冲突的解决方法
2019/07/16 Javascript
vue项目中极验验证的使用代码示例
2019/12/03 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
python基于pyDes库实现des加密的方法
2017/04/29 Python
Python分支结构(switch)操作简介
2018/01/17 Python
Python中的取模运算方法
2018/11/10 Python
Python自定义一个类实现字典dict功能的方法
2019/01/19 Python
详解python读取和输出到txt
2019/03/29 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
2020/03/09 Python
哪种Python框架适合你?简单介绍几种主流Python框架
2020/08/04 Python
weblogic面试题
2016/03/07 面试题
会计专业个人自我鉴定
2014/03/21 职场文书
大学校务公开实施方案
2014/03/31 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
教师节老师寄语
2015/05/28 职场文书
Python制作表白爱心合集
2022/01/22 Python