您好,欢迎访问一九零五行业门户网

详解php封装db类连接sqlite3

sqlite3_open是sqlite数据库的api函数(c/c++),作用是打开(或创建)一个数据库文件。本文主要和大家分享php封装db类连接sqlite3 的知识,希望能帮助到大家。
<?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支持数据库移植,如果你的部署将来有多种数据库,那就用它了.同时,pdo是c设计的,执行效率较高.他已经封装为php的扩展库组件了.运行快,效率高
相关推荐:
python中sqlite3的基本操作实例讲解
php使用pdo连接sqlite3的配置示例详解
php中调用sqlite3
以上就是详解php封装db类连接sqlite3 的详细内容。
其它类似信息

推荐信息