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 FPDF类库应用实现代码
Mar 20 PHP
php 空格,换行,跳格使用说明
Dec 18 PHP
php读取mysql乱码,用set names XXX解决的原理分享
Dec 29 PHP
json的键名为数字时的调用方式(示例代码)
Nov 15 PHP
PHP命名空间和自动加载类
Apr 03 PHP
浅谈PHP值mysql操作类
Jun 29 PHP
php实现微信扫码自动登陆与注册功能
Sep 22 PHP
浅谈php fopen下载远程文件的函数
Nov 18 PHP
PHP asXML()函数讲解
Feb 03 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
Oct 13 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 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.ini 中文版
2006/10/28 PHP
PHP实现用户认证及管理完全源码
2007/03/11 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
如何使用Javascript获取距今n天前的日期
2013/07/08 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
jquery中键盘事件小结
2016/02/24 Javascript
jQuery实现布局高宽自适应的简单实例
2016/05/28 Javascript
详解js的异步编程技术的方法
2017/02/09 Javascript
微信小程序实现表单校验功能
2020/03/30 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
python实用代码片段收集贴
2015/06/03 Python
python简单猜数游戏实例
2015/07/09 Python
分享Python字符串关键点
2015/12/13 Python
基于python3 类的属性、方法、封装、继承实例讲解
2017/09/19 Python
彻底搞懂Python字符编码
2018/01/23 Python
PyTorch CNN实战之MNIST手写数字识别示例
2018/05/29 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
python requests.post带head和body的实例
2019/01/02 Python
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
台湾菁英交友:结识黄金单身的台湾人
2018/01/22 全球购物
电子商务个人职业生涯规划范文
2014/02/12 职场文书
实习单位鉴定评语
2014/04/26 职场文书
和睦家庭事迹
2014/05/14 职场文书
公司承诺书怎么写
2014/05/24 职场文书
2014年服务员工作总结
2014/11/18 职场文书
培训心得体会怎么写
2016/01/25 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python