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 include的妙用,实现路径加密
Jul 29 PHP
php打印输出棋盘的实现方法
Dec 23 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
May 21 PHP
老版本PHP转义Json里的特殊字符的函数
Jun 08 PHP
PHP生成图片验证码功能示例
Jan 12 PHP
PHP中的函数声明与使用详解
May 27 PHP
PHP连接sftp并下载文件的方法教程
Aug 26 PHP
php实现数组中出现次数超过一半的数字的统计方法
Oct 14 PHP
php web环境和命令行环境下查找php.ini的位置
Jul 17 PHP
在Laravel 的 Blade 模版中实现定义变量
Oct 14 PHP
PHP判断当前使用的是什么浏览器(推荐)
Oct 27 PHP
PHP实现常用排序算法的方法
Feb 05 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
7个超级实用的PHP代码片段
2011/07/11 PHP
浅析php与数据库代码开发规范
2013/08/08 PHP
php时区转换转换函数
2014/01/07 PHP
php解析url的三个示例
2014/01/20 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
Laravel获取所有的数据库表及结构的方法
2019/10/10 PHP
ThinkPHP 框架实现的读取excel导入数据库操作示例
2020/04/14 PHP
js玩一玩WSH吧
2007/02/23 Javascript
javascript 流畅动画实现原理
2009/09/08 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
javascript 操作符(~、&amp;、|、^、)使用案例
2014/12/31 Javascript
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
javascript实现别踩白块儿小游戏程序
2015/11/22 Javascript
jQuery控制div实现随滚动条滚动效果
2016/06/07 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
2018/05/08 Javascript
为什么Vue3.0使用Proxy实现数据监听(defineProperty表示不背这个锅)
2019/10/14 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
[01:38]完美世界DOTA2联赛(PWL)宣传片:第一站
2020/10/26 DOTA
matplotlib.pyplot绘图显示控制方法
2019/01/15 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
python中安装django模块的方法
2020/03/12 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
浅析与CSS3的loading动画加载相关的transition优化
2015/05/18 HTML / CSS
美国体育用品商店:Paragon Sports
2017/10/08 全球购物
来自南加州灵感的工作和娱乐服装:TravisMathew
2019/05/01 全球购物
新农村建设典型材料
2014/05/31 职场文书
上课不认真检讨书
2014/09/17 职场文书
后勤个人工作总结
2015/02/28 职场文书
综合办公室主任岗位职责
2015/04/01 职场文书