这篇文章给大家分享的是有关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的扩展库组件了.运行快,效率高
感谢各位的阅读!关于“php封装db类如何连接sqlite3数据库”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
亿速云「云数据库 MySQL」免部署即开即用,比自行安装部署数据库高出1倍以上的性能,双节点冗余防止单节点故障,数据自动定期备份随时恢复。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。