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 相关文章推荐
ThinkPHP自动验证失败的解决方法
Jun 09 PHP
PHP手机号码归属地查询代码(API接口/mysql)
Sep 04 PHP
使用cookie实现统计访问者登陆次数
Jun 08 PHP
PHP导航下拉菜单的实现如此简单
Sep 22 PHP
php实例分享之二维数组排序
May 15 PHP
PHP把小数转成整数3种方法
Jun 30 PHP
PHP实现的sqlite数据库连接类
Dec 12 PHP
PHP中余数、取余的妙用
Jun 29 PHP
PHP实现获取某个月份周次信息的方法
Aug 11 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
Mar 22 PHP
CI操作cookie的方法分析(基于helper类库)
Mar 28 PHP
Smarty模板引擎缓存机制详解
May 23 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
关于php循环跳出的问题
2013/07/01 PHP
PHP程序员的技术成长规划
2016/03/25 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
PHP实现字母数字混合验证码功能
2019/07/11 PHP
Javascript开发包大全整理
2006/12/22 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
网站接入QQ登录的两种方法
2014/07/22 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
jQuery选择器之子元素选择器详解
2017/09/18 jQuery
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
微信小程序实现电子签名并导出图片
2020/05/27 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python生成随机验证码(中文验证码)示例
2014/04/03 Python
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
2018/05/02 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
pandas数据集的端到端处理
2019/02/18 Python
Python3解释器知识点总结
2019/02/19 Python
Python脚本导出为exe程序的方法
2020/03/25 Python
浅谈pycharm导入pandas包遇到的问题及解决
2020/06/01 Python
如何通过python计算圆周率PI
2020/11/11 Python
Lookfantastic希腊官网:英国知名美妆购物网站
2018/09/15 全球购物
软件工程专业推荐信
2013/10/28 职场文书
日语专业毕业生求职信
2013/12/04 职场文书
中专生职业生涯规划书范文
2014/01/10 职场文书
经典促销广告词大全
2014/03/19 职场文书
2014年采购员工作总结
2014/11/18 职场文书
Python道路车道线检测的实现
2021/06/27 Python
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers
css中:last-child不生效的解决方法
2022/08/05 HTML / CSS