php封裝db類連接sqlite3數(shù)據(jù)庫的方法實例
前言
SQLite3擴(kuò)展名在PHP 5.3.0+以上都會默認(rèn)啟用。可以在編譯時使用--without-sqlite3來禁用它。
Windows用戶可通過啟用php_sqlite3.dll才能使用此擴(kuò)展。 php_sqlite3.dll默認(rèn)包含在PHP 5.3.0之后的PHP發(fā)行版中。
有關(guān)詳細(xì)的安裝說明,請查看PHP教程及其官方網(wǎng)站。
本文主要介紹了關(guān)于php封裝db類連接sqlite3的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(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;$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支持?jǐn)?shù)據(jù)庫移植,如果你的部署將來有多種數(shù)據(jù)庫,那就用它了.同時,PDO是C設(shè)計的,執(zhí)行效率較高.他已經(jīng)封裝為PHP的擴(kuò)展庫組件了.運行快,效率高
更多關(guān)于PHP用PDO如何封裝簡單易用的DB類的內(nèi)容可以參考這篇文章:http://www.dbjr.com.cn/article/119880.htm
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- php db類庫進(jìn)行數(shù)據(jù)庫操作
- PHP基于MySQLI函數(shù)封裝的數(shù)據(jù)庫連接工具類【定義與用法】
- PHP數(shù)據(jù)庫表操作的封裝類及用法實例詳解
- PHP封裝的PDO數(shù)據(jù)庫操作類實例
- PHP數(shù)據(jù)庫處理封裝類實例
- php簡單數(shù)據(jù)庫操作類的封裝
- PHP封裝mysqli基于面向?qū)ο蟮膍ysql數(shù)據(jù)庫操作類與用法示例
- PHP封裝的mysqli數(shù)據(jù)庫操作類示例
- PHP模型Model類封裝數(shù)據(jù)庫操作示例
- PHP封裝的數(shù)據(jù)庫模型Model類完整示例【基于PDO】
- PHP封裝類似thinkphp連貫操作數(shù)據(jù)庫Db類與簡單應(yīng)用示例
相關(guān)文章
php中選擇什么接口(mysql、mysqli)訪問mysql
我們知道,mysqli是PHP 5中新提供的MySQL接口,此接口使用了面向?qū)ο蟮乃枷搿J褂胢ysqli接口的代碼可讀性更強(qiáng),其執(zhí)行效率比mysql接口高2013-02-02php學(xué)習(xí)之?dāng)?shù)據(jù)類型之間的轉(zhuǎn)換代碼
php學(xué)習(xí)之?dāng)?shù)據(jù)類型之間的轉(zhuǎn)換代碼,主要解決php中一些數(shù)據(jù)類型之間的相互轉(zhuǎn)換。2011-05-05在WordPress中獲取數(shù)據(jù)庫字段內(nèi)容和添加主題設(shè)置菜單
這篇文章主要介紹了在WordPress中獲取數(shù)據(jù)庫字段內(nèi)容和添加主題設(shè)置菜單的方法,分別講解了get_option()函數(shù)和add_theme_page()函數(shù)的用法,需要的朋友可以參考下2016-01-01