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 相关文章推荐
用PHP4访问Oracle815
Oct 09 PHP
我的php学习笔记(毕业设计)
Feb 21 PHP
让ThinkPHP支持大小写url地址访问的方法
Oct 31 PHP
ThinkPHP实现支付宝接口功能实例
Dec 02 PHP
php微信公众开发之获取周边酒店信息的方法
Dec 22 PHP
php遍历目录方法小结
Mar 10 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
PHP使用SOAP调用API操作示例
Dec 25 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
Mar 30 PHP
PHP实现的操作数组类库定义与用法示例
May 24 PHP
php利用array_search与array_column实现二维数组查找
Jul 08 PHP
PHP7新增函数
Mar 09 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
php抓即时股票信息
2006/10/09 PHP
PHP备份数据库生成SQL文件并下载的函数代码
2012/02/05 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
2013/05/03 PHP
PHP 线程安全与非线程安全版本的区别深入解析
2013/08/06 PHP
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
php实现在限定区域里自动调整字体大小的类实例
2015/04/02 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
PHP二维数组分页2种实现方法解析
2020/07/09 PHP
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
Javascript 复制数组实现代码
2009/11/26 Javascript
Jquery工作常用实例 使用AJAX使网页进行异步更新
2011/07/26 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
JavaScript判断前缀、后缀是否是空格的方法
2015/04/15 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
2019/10/11 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
Python计算两个日期相差天数的方法示例
2017/05/23 Python
Python实现按逗号分隔列表的方法
2018/10/23 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
Python使用贪婪算法解决问题
2019/10/22 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
抽象方法、抽象类怎样声明
2014/10/25 面试题
如何执行一个shell程序
2012/11/23 面试题
实习教师自我鉴定
2013/12/12 职场文书
酒店个人求职信范文
2014/01/25 职场文书
研究生简历自我评价范文
2014/09/13 职场文书
小学生思想品德评语
2014/12/31 职场文书
2015年少先队活动总结
2015/03/25 职场文书
公务员处分决定书
2015/06/25 职场文书
暑期工社会实践报告
2015/07/13 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python