当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-08-23 22:14:22 浏览: 评论:0 

sqlite数据库只用一个文件就ok,小巧方便,所以是一个非常不错的嵌入式数据库,下面这篇文章主要给大家介绍了关于php利用封装db类连接sqlite3的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。

前言

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

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

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

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

示例代码:

  1. <?php 
  2.  class dbManager{ 
  3.  public $db
  4.  function __construct(){ 
  5.   if(!file_exists('./db.php')){ 
  6.   $this->init(); 
  7.   return
  8.   } 
  9.   $this->db = new SQLite3('./db.php'); 
  10.  } 
  11.  function init(){ 
  12.   $this->db = new SQLite3('./db.php'); 
  13.   // TODO: 
  14.  } 
  15.  function changes(){ 
  16.   return $this->db->changes(); 
  17.  } 
  18.  function query($sql,$param=null,$memb=null){ 
  19.   $stmt=$this->db->prepare($sql); 
  20.   if(!$stmt
  21.   return false; 
  22.   if($param){ 
  23.   if(is_array($param)){ 
  24.    for($i=0;$i<count($param);$i++) 
  25.    $stmt->bindValue($i+1,$param[$i]); 
  26.   }else
  27.    $stmt->bindValue(1,$param); 
  28.   } 
  29.   } 
  30.   $rs=$stmt->execute(); 
  31.   if(!$rs){ 
  32.   $stmt->close(); 
  33.   return false; 
  34.   } 
  35.   $arr=$rs->fetchArray(SQLITE3_NUM); 
  36.   $rs->finalize(); 
  37.   $stmt->close(); 
  38.   if(!$arr
  39.   return null; 
  40.   if(!$memb
  41.   return $arr
  42.   $res=array(); 
  43.   for($i=0;$i<count($memb);$i++){ 
  44.   $res[$memb[$i]]=$arr[$i]; 
  45.   } 
  46.   return $res
  47.  } 
  48.  function queryAll($sql,$param=null,$memb=null){ 
  49.   $stmt=$this->db->prepare($sql); 
  50.   if(!$stmt
  51.   return false; 
  52.   if($param){ 
  53.   if(is_array($param)){ 
  54.    for($i=0;$i<count($param);$i++) 
  55.    $stmt->bindValue($i+1,$param[$i]); 
  56.   }else
  57.    $stmt->bindValue(1,$param); 
  58.   } 
  59.   } 
  60.   $rs=$stmt->execute(); 
  61.   if(!$rs){ 
  62.   $stmt->close(); 
  63.   return false; 
  64.   }   
  65.   $res=array(); 
  66.   while($arr=$rs->fetchArray(SQLITE3_NUM)){ 
  67.   if(!$memb) { 
  68.    $res[]=$arr
  69.    continue
  70.   } 
  71.   if(count($memb)==1 && $memb[0]==null){ 
  72.    $res[]=$arr[0]; 
  73.    continue
  74.   } 
  75.   $it=array(); 
  76.   for($i=0;$i<count($memb);$i++){ 
  77.    $it[$memb[$i]]=$arr[$i]; 
  78.   } 
  79.   $res[]=$it
  80.   } 
  81.   $rs->finalize(); 
  82.   $stmt->close(); 
  83.     
  84.   return $res
  85.  } 
  86.  function querySingle($sql,$param=null){ 
  87.   $res=$this->query($sql,$param); 
  88.   if(!$res
  89.   return false; 
  90.   return $res[0]; 
  91.  }  
  92.  function querySingleAll($sql,$param=null){ 
  93.   $stmt=$this->db->prepare($sql); 
  94.   if(!$stmt
  95.   return false; 
  96.   if($param){ 
  97.   if(is_array($param)){ 
  98.    for($i=0;$i<count($param);$i++) 
  99.    $stmt->bindValue($i+1,$param[$i]); 
  100.   }else
  101.    $stmt->bindValue(1,$param); 
  102.   } 
  103.   } 
  104.   $rs=$stmt->execute(); 
  105.   if(!$rs){ 
  106.   $stmt->close(); 
  107.   return false; 
  108.   }   
  109.   $res=array(); 
  110.   while($arr=$rs->fetchArray(SQLITE3_NUM)){ 
  111.   $res[]=$arr[0]; 
  112.   } 
  113.   $rs->finalize(); 
  114.   $stmt->close(); 
  115.     
  116.   return $res
  117.  } 
  118.  function exec($sql,$param=null){ 
  119.   $stmt=$this->db->prepare($sql); 
  120.   if(!$stmt
  121.   return false; 
  122.   if($param){ 
  123.   if(is_array($param)){ 
  124.    for($i=0;$i<count($param);$i++) 
  125.    $stmt->bindValue($i+1,$param[$i]); 
  126.   }else
  127.    $stmt->bindValue(1,$param); 
  128.   } 
  129.   } 
  130.   $rs=$stmt->execute(); 
  131.   if($rs) { 
  132.   $res=true; 
  133.   $rs->finalize(); 
  134.   }else
  135.   $res=false; 
  136.   } 
  137.   $stmt->close(); 
  138.   return $res
  139.  }  
  140.  function begin(){ 
  141.   return $this->exec('BEGIN'); 
  142.  } 
  143.  function rollback(){ 
  144.   return $this->exec('ROLLBACK'); 
  145.  } 
  146.  function commit(){ 
  147.   return $this->exec('COMMIT'); 
  148.  }  
  149.  function escapeString($s){ 
  150.   return $this->db->escapeString($s); 
  151.  } 
  152.  //最新插入的id 
  153.  function lastInsertRowID(){ 
  154.   return $this->db->lastInsertRowID(); 
  155.  }  
  156.  function lastErrorMsg (){ 
  157.   return $this->db->lastErrorMsg(); 
  158.  } 
  159.  } 
  160. ?> 

PDO支持数据库移植,如果你的部署将来有多种数据库,那就用它了.同时,PDO是C设计的,执行效率较高.他已经封装为PHP的扩展库组件了.运行快,效率高。

Tags: php封装 sqlite3

分享到: