php封裝db類連接sqlite3數(shù)據(jù)庫的方法實例
前言
SQLite3擴展名在PHP 5.3.0+以上都會默認啟用??梢栽诰幾g時使用--without-sqlite3來禁用它。
Windows用戶可通過啟用php_sqlite3.dll才能使用此擴展。 php_sqlite3.dll默認包含在PHP 5.3.0之后的PHP發(fā)行版中。
有關(guān)詳細的安裝說明,請查看PHP教程及其官方網(wǎng)站。
本文主要介紹了關(guān)于php封裝db類連接sqlite3的相關(guān)內(nèi)容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
示例代碼:
<?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支持數(shù)據(jù)庫移植,如果你的部署將來有多種數(shù)據(jù)庫,那就用它了.同時,PDO是C設(shè)計的,執(zhí)行效率較高.他已經(jīng)封裝為PHP的擴展庫組件了.運行快,效率高
更多關(guān)于PHP用PDO如何封裝簡單易用的DB類的內(nèi)容可以參考這篇文章:http://www.dhdzp.com/article/119880.htm
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- php db類庫進行數(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類與簡單應用示例
相關(guān)文章
在windows服務(wù)器開啟php的gd庫phpinfo中未發(fā)現(xiàn)
在windows服務(wù)器開啟php的gd庫時,使用cgi之后phpinfo()得到的結(jié)果中 Configure Command 中并沒有出現(xiàn)gd,很是疑惑,于是搜集了一些,希望對你們有幫助,感興趣的朋友可以了解下2013-01-01
php實現(xiàn)不通過擴展名準確判斷文件類型的方法【finfo_file方法與二進制流】
這篇文章主要介紹了php實現(xiàn)不通過擴展名準確判斷文件類型的方法,涉及php中finfo_file方法與二進制流針對文件類型的相關(guān)操作技巧,需要的朋友可以參考下2017-04-04
PHP preg_match實現(xiàn)正則表達式匹配功能【輸出是否匹配及匹配值】
這篇文章主要介紹了PHP preg_match實現(xiàn)正則表達式匹配功能,較為詳細的介紹了preg_match函數(shù)的功能、參數(shù)含義、返回值及使用方法,并結(jié)合實例給出了preg_match輸出是否匹配及匹配值的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-07-07
php數(shù)組比較實現(xiàn)查找連續(xù)數(shù)的方法
這篇文章主要介紹了php數(shù)組比較實現(xiàn)查找連續(xù)數(shù)的方法,實例分析了php數(shù)組查找及字符串操作的相關(guān)技巧,需要的朋友可以參考下2015-07-07
支持生僻字且自動識別utf-8編碼的php漢字轉(zhuǎn)拼音類
這篇文章主要介紹了支持生僻字且自動識別utf-8編碼的php漢字轉(zhuǎn)拼音類,非常實用!需要的朋友可以參考下2014-06-06
php實現(xiàn)的三個常用加密解密功能函數(shù)示例
這篇文章主要介紹了php實現(xiàn)的三個常用加密解密功能函數(shù),涉及php針對字符串的遍歷、截取、編碼轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下2017-11-11

