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 分页原理详解
Aug 21 PHP
php入门学习知识点六 PHP文件的读写操作代码
Jul 14 PHP
使用URL传输SESSION信息
Jul 14 PHP
将PHP的session数据存储到数据库中的代码实例
Jun 24 PHP
Yii2框架制作RESTful风格的API快速入门教程
Nov 08 PHP
PHP后台微信支付和支付宝支付开发
Apr 28 PHP
PHP机器学习库php-ml的简单测试和使用方法
Jul 14 PHP
[原创]PHP实现SQL语句格式化功能的方法
Jul 28 PHP
PHP获取访问设备信息的方法示例
Feb 20 PHP
laravel实现简单用户权限的示例代码
May 28 PHP
PHP tp5中使用原生sql查询代码实例
Oct 28 PHP
PHP7 标准库修改
Mar 09 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
mysql limit查询优化分析
2008/11/12 PHP
php中通过Ajax如何实现异步文件上传的代码实例
2011/05/07 PHP
php代码收集表单内容并写入文件的代码
2012/01/29 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
2013/06/25 PHP
Fatal error: session_start(): Failed to initialize storage module: files问题解决方法
2014/05/04 PHP
php示例详解Constructor Prototype Pattern 原型模式
2015/10/15 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
设定php简写功能的方法
2019/11/28 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
JQuery datepicker 使用方法
2011/05/20 Javascript
jquery判断浏览器类型的代码
2012/11/05 Javascript
jQuery 实现侧边浮动导航菜单效果
2014/12/26 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
javascript Slip.js实现整屏滑动的手机网页
2015/11/25 Javascript
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
vue修改vue项目运行端口号的方法
2017/08/04 Javascript
jquery实现左右轮播图效果
2017/09/28 jQuery
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
在SSM框架下用laypage和ajax实现分页和数据交互的方法
2019/09/27 Javascript
使用uni-app开发微信小程序的实现
2019/12/13 Javascript
详解Python中的__init__和__new__
2014/03/12 Python
最大K个数问题的Python版解法总结
2016/06/16 Python
Python selenium如何设置等待时间
2016/09/15 Python
pytorch实现MNIST手写体识别
2020/02/14 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
巴西食品补充剂在线零售商:Músculos na Web
2017/08/07 全球购物
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
信息专业本科生个人的自我评价
2013/10/28 职场文书
大学生党员个人总结
2015/02/13 职场文书
运动员入场前导词
2015/07/20 职场文书
外出培训学习心得体会
2016/01/18 职场文书
详解Python中__new__方法的作用
2022/03/31 Python
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers