php封裝db類連接sqlite3數(shù)據(jù)庫(kù)的方法實(shí)例
前言
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;$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ù)庫(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)容可以參考這篇文章:http://m.fzitv.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)用示例
相關(guān)文章
解析csv數(shù)據(jù)導(dǎo)入mysql的方法
本篇文章是對(duì)將csv數(shù)據(jù)導(dǎo)入mysql的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07
在windows服務(wù)器開(kāi)啟php的gd庫(kù)phpinfo中未發(fā)現(xiàn)
在windows服務(wù)器開(kāi)啟php的gd庫(kù)時(shí),使用cgi之后phpinfo()得到的結(jié)果中 Configure Command 中并沒(méi)有出現(xiàn)gd,很是疑惑,于是搜集了一些,希望對(duì)你們有幫助,感興趣的朋友可以了解下2013-01-01
php實(shí)現(xiàn)不通過(guò)擴(kuò)展名準(zhǔn)確判斷文件類型的方法【finfo_file方法與二進(jìn)制流】
這篇文章主要介紹了php實(shí)現(xiàn)不通過(guò)擴(kuò)展名準(zhǔn)確判斷文件類型的方法,涉及php中finfo_file方法與二進(jìn)制流針對(duì)文件類型的相關(guān)操作技巧,需要的朋友可以參考下2017-04-04
PHP preg_match實(shí)現(xiàn)正則表達(dá)式匹配功能【輸出是否匹配及匹配值】
這篇文章主要介紹了PHP preg_match實(shí)現(xiàn)正則表達(dá)式匹配功能,較為詳細(xì)的介紹了preg_match函數(shù)的功能、參數(shù)含義、返回值及使用方法,并結(jié)合實(shí)例給出了preg_match輸出是否匹配及匹配值的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-07-07
PHP中使用Imagick讀取pdf并生成png縮略圖實(shí)例
這篇文章主要介紹了PHP中使用Imagick讀取pdf并生成png縮略圖實(shí)例,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-01-01
php數(shù)組比較實(shí)現(xiàn)查找連續(xù)數(shù)的方法
這篇文章主要介紹了php數(shù)組比較實(shí)現(xiàn)查找連續(xù)數(shù)的方法,實(shí)例分析了php數(shù)組查找及字符串操作的相關(guān)技巧,需要的朋友可以參考下2015-07-07
支持生僻字且自動(dòng)識(shí)別utf-8編碼的php漢字轉(zhuǎn)拼音類
這篇文章主要介紹了支持生僻字且自動(dòng)識(shí)別utf-8編碼的php漢字轉(zhuǎn)拼音類,非常實(shí)用!需要的朋友可以參考下2014-06-06
php實(shí)現(xiàn)的三個(gè)常用加密解密功能函數(shù)示例
這篇文章主要介紹了php實(shí)現(xiàn)的三個(gè)常用加密解密功能函數(shù),涉及php針對(duì)字符串的遍歷、截取、編碼轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下2017-11-11

