Home >Backend Development >PHP Tutorial >Example explanation of the method of php encapsulating db class to connect to sqlite3 database

Example explanation of the method of php encapsulating db class to connect to sqlite3 database

jacklove
jackloveOriginal
2018-07-05 17:45:322119browse

The sqlite database only uses one file. It is small and convenient, so it is a very good embedded database. The following article mainly introduces you to the relevant information about php using the encapsulated db class to connect to sqlite3. The article uses sample code The introduction is very detailed, friends in need can refer to it.

Preface

The SQLite3 extension will be enabled by default in PHP 5.3.0 and above. This can be disabled at compile time using --without-sqlite3.

Windows users can use this extension by enabling php_sqlite3.dll. php_sqlite3.dll is included by default in PHP distributions after PHP 5.3.0.

For detailed installation instructions, check out the PHP tutorial and its official website.

This article mainly introduces the relevant content about php encapsulating db class connection to sqlite3, and shares it for everyone's reference and study. I won't say much below, let's take a look at the detailed introduction.

Sample code:

<?php
 class dbManager{
 public $db;
 function __construct(){
  if(!file_exists(&#39;./db.php&#39;)){
  $this->init();
  return;
  }
  $this->db = new SQLite3(&#39;./db.php&#39;);
 }
 function init(){
  $this->db = new SQLite3(&#39;./db.php&#39;);
  // 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(&#39;BEGIN&#39;);
 }
 function rollback(){
  return $this->exec(&#39;ROLLBACK&#39;);
 }
 function commit(){
  return $this->exec(&#39;COMMIT&#39;);
 } 
 function escapeString($s){
  return $this->db->escapeString($s);
 }
 //最新插入的id
 function lastInsertRowID(){
  return $this->db->lastInsertRowID();
 } 
 function lastErrorMsg (){
  return $this->db->lastErrorMsg();
 }
 }
?>

PDO supports database migration, if your deployment is in the future There are many kinds of databases, then use it. At the same time, PDO is designed in C and has high execution efficiency. It has been packaged as an extension library component of PHP. It runs fast and has high efficiency

Summary

Articles you may be interested in:

Analysis and explanation of the method of simulating http requests in PHP

#php Example explanation of socket push technology

phpExplanation of the method of obtaining WeChat shared delivery address

The above is the detailed content of Example explanation of the method of php encapsulating db class to connect to sqlite3 database. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn