PHP实现的sqlite数据库连接类


Posted in PHP onDecember 12, 2014

本文实例讲述了PHP实现的sqlite数据库连接类。分享给大家供大家参考。具体实现方法如下:

该sqlite数据库连接类就是利用了php与sqlite进行连接操作,代码如下:

*/ 

lass db_class { 

var $conn=null; 

var $querynum = 0; 

/** 

 * 数据库连接,返回数据库连接标识符 

 *  

 * @param string $ 数据库服务器主机 

 * @param string $ 数据库服务器帐号 

 * @param string $ 数据库服务器密码 

 * @param string $ 数据库名 

 * @param bool $ 是否保持持续连接,1为持续连接,0为非持续连接 

 * @return link_identifier $dbuser, $dbpw, $dbname, 

 */ 

function connect($dbhost, $pconnect = 0) { 

 $error = ''; 

 $func = $pconnect == 1 ? 'sqlite_popen' : 'sqlite_open'; 

 if (!$this -> conn = $func($dbhost, 0666, $error)) { 

  $this -> halt($error); 

 } 

 return $this -> conn; 

} 

/** 

 * 执行sql语句 

 *  

 * @param string $ sql语句 

 * @param string $ 默认为空,可选值为 cache unbuffered 

 * @param int $ cache以秒为单位的生命周期 

 * @return resource  

 */ 

function query($sql , $type = '' , $expires = 3600, $dbname = '') { 

 $error = ''; 

 $func = $type == 'unbuffered' ? 'sqlite_unbuffered_query' : 'sqlite_query'; 

 if (preg_match("/^s*select/i", $sql)) { 

  $query = $func($this -> conn, $sql, sqlite_assoc, $error); 

 } else { 

  $query = sqlite_exec($this -> conn, $sql, $error); 

 }  

 if ($error) { 

  $this -> halt($error, $sql); 

 } 

 $this -> querynum++; 

 return $query; 

}  

/* 

*@param string $ table名 

*@param string $ where条件 

*@param string $ colum名 

 

*@param string $ limit数量  

 

*/ 

function getlist($table , $wheres = "1=1",  $colums = '*' ,$limits = '3000',$orderbys="id desc") { 

 $query = $this -> query("select ".$colums." from ".$table." where ".$wheres." order by  ".$orderbys."  limit ".$limits, $type, $expires, $dbname); 

 while($rs = $this -> fetch_array($query)){ 

  $datas[]=$rs; 

  } 

 //print_r("select ".$colums." from ".$table." where ".$wheres." limit ".$limits); 

 //print_r($rs);die(); 

 $this -> free_result($query); 

 return $datas ; 

} 

function add_one($table , $colums ,$data ) { 

 //die("insert into ".$table." (".$colums.") values(".$data.")"); 

 $query = $this -> query("insert into ".$table." (".$colums.") values(".$data.")", $type, $expires, $dbname); 

 //return $this->insert_id(); 

 return $query; 

} 

function delist($table , $idarray,$wheres="no") { 

 if($wheres=='no') 

  $query = $this -> query("delete from ".$table." where id in(".$idarray.")", $type, $expires, $dbname); 

 else 

  $query = $this -> query("delete from ".$table." where ".$wheres, $type, $expires, $dbname); 

 return $query; 

} 

function updatelist($table , $updatedata,$idarray) { 

 $query = $this -> query("update ".$table." set ". $updatedata."  where id in(".$idarray.")", $type, $expires, $dbname); 

 return $query; 

} 

//update max_vote set maxtitle='$title',maxban='$ban', 

/** 

 * 执行sql语句,只得到一条记录 

 *  

 * @param string $ sql语句 

 * @param string $ 默认为空,可选值为 cache unbuffered 

 * @param int $ cache以秒为单位的生命周期 

 * @return array  

 */ 

function get_one($sql, $type = '', $expires = 3600, $dbname = '') { 

 $query = $this -> query($sql, $type, $expires, $dbname); 

 $rs = $this -> fetch_array($query); 

 $this -> free_result($query); 

 return $rs ; 

} 

/** 

 * 从结果集中取得一行作为关联数组 

 *  

 * @param resource $ 数据库查询结果资源 

 * @param string $ 定义返回类型 

 * @return array  

 */ 

function fetch_array($query, $result_type = sqlite_assoc) { 

 return sqlite_fetch_array($query, $result_type); 

} 

/** 

 * 取得前一次 sqlite操作所影响的记录行数 

 *  

 * @return int  

 */ 

function affected_rows() { 

 return sqlite_changes($this -> conn); 

} 

/** 

 * 取得结果集中行的数目 

 *  

 * @return int  

 */ 

function num_rows($query) { 

 return sqlite_num_rows($query); 

} 

/** 

 * 返回结果集中字段的数目 

 *  

 * @return int  

 */ 

function num_fields($query) { 

 return sqlite_num_fields($query); 

} 

/** 

 *  

 * @return array 备用,一般不用. 

 */ 

function result($query, $row) { 

 return @sqlite_fetch_all($query, sqlite_assoc); 

}  

/** 

 * sqlite没有相应函数 

 */ 

function free_result($query) { 

 return ; 

} 

/** 

 * 取得上一步 insert 操作产生的 id 

 *  

 * @return int  

 */ 

function insert_id() { 

 return sqlite_last_insert_rowid($this -> connid); 

} 

/** 

 *  

 * @return array 只得到数字索引 

 */ 

function fetch_row($query) { 

 return sqlite_fetch_array($query, sqlite_num); 

}  

/** 

 */ 

function fetch_assoc($query) { 

 return $this -> fetch_array($query, sqlite_assoc); 

}  

/** 

 *  

 * @return string  

 */ 

function version() { 

 return sqlite_libversion(); 

} 

function close() { 

 return sqlite_close($this -> conn); 

} 

/** 

 *  

 * @return string  

 */ 

function error() { 

 return sqlite_error_string($this -> errno); 

} 

/** 

 *  

 * @return int  

 */ 

function errno() { 

 return sqlite_last_error($this -> conn); 

} 

/** 

 * 显示mysql教程错误信息 

 */ 

function halt($message = '', $sql = '') { 

 exit("sqlitequery:$sql <br> sqliteerror:" . $this -> error() . " <br> sqliteerrno:" . $this -> errno() . " <br> message:$message"); 

}

希望本文所述对大家的PHP数据库程序设计有所帮助。

PHP 相关文章推荐
php公用函数列表[正则]
Feb 22 PHP
php垃圾代码优化操作代码
Aug 05 PHP
检测png图片是否完整的php代码
Sep 06 PHP
简单的移动设备检测PHP脚本代码
Feb 19 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
Mar 06 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
Sep 16 PHP
PHP中使用curl入门教程
Jul 02 PHP
分享五个PHP7性能优化提升技巧
Dec 07 PHP
Redis在Laravel项目中的应用实例详解
Aug 11 PHP
php反射学习之不用new方法实例化类操作示例
Jun 14 PHP
php layui实现前端多图上传实例
Jul 30 PHP
phpStorm2020 注册码
Sep 17 PHP
php+mysql数据库实现无限分类的方法
Dec 12 #PHP
PHP中if和or运行效率对比
Dec 12 #PHP
php实现高效获取图片尺寸的方法
Dec 12 #PHP
CI框架中cookie的操作方法分析
Dec 12 #PHP
jQuery Mobile + PHP实现文件上传
Dec 12 #PHP
分享一段PHP制作的中文拼音首字母工具类
Dec 11 #PHP
PHP截取指定图片大小的方法
Dec 10 #PHP
You might like
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
JavaScript 设计模式学习 Singleton
2009/07/27 Javascript
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
js判断子窗体是否关闭的方法
2015/08/11 Javascript
vue.js表格分页示例
2016/10/18 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
2017/09/04 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
JavaScript页面倒计时功能完整示例
2019/05/15 Javascript
vue中uni-app 实现小程序登录注册功能
2019/10/12 Javascript
详解Python中的文本处理
2015/04/11 Python
详解Python命令行解析工具Argparse
2016/04/20 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
django+echart绘制曲线图的方法示例
2018/11/26 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
python for循环remove同一个list过程解析
2019/08/14 Python
Python数组并集交集补集代码实例
2020/02/18 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
移动通信专业自荐信范文
2013/11/12 职场文书
大学生最新职业生涯规划书范文
2014/01/12 职场文书
物业管理专业求职信
2014/06/11 职场文书
初中同学会活动方案
2014/08/22 职场文书
法人授权委托书范本
2014/09/17 职场文书
2016干部作风整顿心得体会
2016/01/22 职场文书
vue选项卡切换的实现案例
2022/04/11 Vue.js
Vite + React从零开始搭建一个开源组件库
2022/06/25 Javascript
数据设计之权限的实现
2022/08/05 MySQL