php封裝db類連接sqlite3數(shù)據(jù)庫的方法實(shí)例
前言
SQLite3擴(kuò)展名在PHP 5.3.0+以上都會(huì)默認(rèn)啟用。可以在編譯時(shí)使用--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ù)庫,那就用它了.同時(shí),PDO是C設(shè)計(jì)的,執(zhí)行效率較高.他已經(jīng)封裝為PHP的擴(kuò)展庫組件了.運(yùn)行快,效率高
更多關(guān)于PHP用PDO如何封裝簡單易用的DB類的內(nèi)容可以參考這篇文章:http://www.dbjr.com.cn/article/119880.htm
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- php db類庫進(jìn)行數(shù)據(jù)庫操作
- PHP基于MySQLI函數(shù)封裝的數(shù)據(jù)庫連接工具類【定義與用法】
- PHP數(shù)據(jù)庫表操作的封裝類及用法實(shí)例詳解
- PHP封裝的PDO數(shù)據(jù)庫操作類實(shí)例
- PHP數(shù)據(jù)庫處理封裝類實(shí)例
- 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ū)ο蟮乃枷?。使用mysqli接口的代碼可讀性更強(qiáng),其執(zhí)行效率比mysql接口高2013-02-02php+ajax實(shí)現(xiàn)圖片文件上傳功能實(shí)例
目前常用的異步文件上傳功能有幾種,比較多見的如使用iframe框架形式,ajax功能效果,以及flash+php功能,需要的朋友可以參考下2014-06-06php學(xué)習(xí)之?dāng)?shù)據(jù)類型之間的轉(zhuǎn)換代碼
php學(xué)習(xí)之?dāng)?shù)據(jù)類型之間的轉(zhuǎn)換代碼,主要解決php中一些數(shù)據(jù)類型之間的相互轉(zhuǎn)換。2011-05-05php bootstrap實(shí)現(xiàn)簡單登錄
這篇文章主要為大家詳細(xì)介紹了php bootstrap實(shí)現(xiàn)簡單登錄的具體方法,感興趣的小伙伴們可以參考一下2016-03-03在WordPress中獲取數(shù)據(jù)庫字段內(nèi)容和添加主題設(shè)置菜單
這篇文章主要介紹了在WordPress中獲取數(shù)據(jù)庫字段內(nèi)容和添加主題設(shè)置菜單的方法,分別講解了get_option()函數(shù)和add_theme_page()函數(shù)的用法,需要的朋友可以參考下2016-01-01