主頁(yè) > 知識(shí)庫(kù) > php封裝db類連接sqlite3數(shù)據(jù)庫(kù)的方法實(shí)例

php封裝db類連接sqlite3數(shù)據(jù)庫(kù)的方法實(shí)例

熱門(mén)標(biāo)簽:服務(wù)器配置 銀行業(yè)務(wù) 阿里云 Mysql連接數(shù)設(shè)置 電子圍欄 科大訊飛語(yǔ)音識(shí)別系統(tǒng) 團(tuán)購(gòu)網(wǎng)站 Linux服務(wù)器

前言

SQLite3擴(kuò)展名在PHP 5.3.0+以上都會(huì)默認(rèn)啟用??梢栽诰幾g時(shí)使用--without-sqlite3來(lái)禁用它。

Windows用戶可通過(guò)啟用php_sqlite3.dll才能使用此擴(kuò)展。 php_sqlite3.dll默認(rèn)包含在PHP 5.3.0之后的PHP發(fā)行版中。

有關(guān)詳細(xì)的安裝說(shuō)明,請(qǐng)查看PHP教程及其官方網(wǎng)站。

本文主要介紹了關(guān)于php封裝db類連接sqlite3的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。

示例代碼:

?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;$icount($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;$icount($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;$icount($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;$icount($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;$icount($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;$icount($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支持?jǐn)?shù)據(jù)庫(kù)移植,如果你的部署將來(lái)有多種數(shù)據(jù)庫(kù),那就用它了.同時(shí),PDO是C設(shè)計(jì)的,執(zhí)行效率較高.他已經(jīng)封裝為PHP的擴(kuò)展庫(kù)組件了.運(yùn)行快,效率高

更多關(guān)于PHP用PDO如何封裝簡(jiǎn)單易用的DB類的內(nèi)容可以參考這篇文章:https://www.jb51.net/article/119880.htm

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

您可能感興趣的文章:
  • php db類庫(kù)進(jìn)行數(shù)據(jù)庫(kù)操作
  • PHP基于MySQLI函數(shù)封裝的數(shù)據(jù)庫(kù)連接工具類【定義與用法】
  • PHP數(shù)據(jù)庫(kù)表操作的封裝類及用法實(shí)例詳解
  • PHP封裝的PDO數(shù)據(jù)庫(kù)操作類實(shí)例
  • PHP數(shù)據(jù)庫(kù)處理封裝類實(shí)例
  • php簡(jiǎn)單數(shù)據(jù)庫(kù)操作類的封裝
  • PHP封裝mysqli基于面向?qū)ο蟮膍ysql數(shù)據(jù)庫(kù)操作類與用法示例
  • PHP封裝的mysqli數(shù)據(jù)庫(kù)操作類示例
  • PHP模型Model類封裝數(shù)據(jù)庫(kù)操作示例
  • PHP封裝的數(shù)據(jù)庫(kù)模型Model類完整示例【基于PDO】
  • PHP封裝類似thinkphp連貫操作數(shù)據(jù)庫(kù)Db類與簡(jiǎn)單應(yīng)用示例

標(biāo)簽:衡水 棗莊 廣元 衢州 蚌埠 江蘇 萍鄉(xiāng) 大理

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《php封裝db類連接sqlite3數(shù)據(jù)庫(kù)的方法實(shí)例》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266