本文实例讲述了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
sqliteerror:" . $this -> error() . "
sqliteerrno:" . $this -> errno() . "
message:$message");

}

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

php SQLite mysql_PHP实现的sqlite数据库连接类相关推荐

  1. SQLite之C#连接SQLite

    SQLite之C#连接SQLite 2015-05-05 17:52  糯米粥  阅读(40651)  评论(1)  编辑  收藏 我的程序突然不能访问数据库了,回过头来再看这文章,才知道是自己的几天 ...

  2. 【玩转SQLite系列】(六)SQLite数据库应用案例实现历史搜索记录

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53366564 本文出自[DylanAndroid的博客] [玩转SQLite系 ...

  3. 【SQLite关系型数据库】SQLite语法

    作者:郭孝星 微博:郭孝星的新浪微博 邮箱:guoxiaoxingv@163.com 博客:http://blog.csdn.net/allenwells Github:https://github. ...

  4. GitHub开源:SQLite 增强组件 Sheng.SQLite.Plus

    Github:https://github.com/iccb1013/Sheng.SQLite.Plus Sheng.SQLite.Plus 是一个对直接使用 ADO.NET 方式操作 SQLite ...

  5. GitHub开源:升讯威 SQLite 增强组件 Sheng.SQLite.Plus

    Github:https://github.com/iccb1013/Sheng.SQLite.Plus Sheng.SQLite.Plus 是一个对直接使用 ADO.NET 方式操作 SQLite ...

  6. 【玩转SQLite系列】(二)SQLite创建和打开数据库的三种方式

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53234396 本文出自[DylanAndroid的博客] [玩转SQLite系 ...

  7. 自己写的Python数据库连接类和sql语句拼接方法

    这个工具类十分简单和简洁. sql拼接方法 # encoding=utf-8 from django.http import HttpResponse from anyjson import seri ...

  8. python怎么和sql一起用_自己写的Python数据库连接类和sql语句拼接方法

    这个工具类十分简单和简洁. sql拼接方法 # encoding=utf-8 from django.http import HttpResponse from anyjson import seri ...

  9. java数据库连接类,已经把数据库操作的方法都封装好了

    在这里分享一个已经封装好了的java数据库连接类,只要创建对象就可以实现数据库的增删改查操作,用过都说好.其实这个不是我自己写的,是一个理解和学习能力超高的朋友写的,他也很乐于分享交流,本人也深受他的 ...

最新文章

  1. avpicture_fill的实现
  2. java 正则表达式 非贪婪模式_详解正则表达式的贪婪模式与非贪婪模式
  3. KubeCon 2019 北美会议完美落幕| 云原生生态周报 Vol. 29
  4. angularJS 表单验证
  5. java和node.js 2018_2018,Node.js社区最值得关注的三个话题
  6. 【数据结构与算法】之深入解析“穿过迷宫的最少移动次数”的求解思路与算法示例
  7. python socket epoll_python 关于epoll的学习
  8. mongodb3.0 性能測试报告 一
  9. Python图像处理库:Pillow 初级教程
  10. python3 运行you get_一个基于Python3的神奇插件——you-get
  11. MySQL实验7存储过程_mySQL(7)-存储过程
  12. 冈萨雷斯数字图像处理开篇
  13. 机器人仿真软件 V-REP学习记录(序言)
  14. 智能机器人根据其智能程度不同,主要分为哪些类型?
  15. Powershell的字符串
  16. ReentrantReadWriteLock、StampedLock
  17. AVS2参考软件的运行
  18. 数据分析与挖掘(一)误差与精度
  19. 用python预测小孩的身高体重标准表格_【儿童的标准身高】儿童身高体重标准表2017 儿童身高体重计算公式...
  20. Hyper-V 和 VMWare 终于可以无缝共存、同时运行了

热门文章

  1. 每日一皮:史上最直观的单向循环链表,还不懂算我输!
  2. IDEA中 30 秒生成 Spring Cloud Alibaba 工程
  3. Spring Boot 2.x基础教程:使用Swagger2构建强大的API文档
  4. CVE-2010-2883 从漏洞分析到样本分析
  5. T-SQL和安全机制
  6. oracle9i在windows上的dataguard配置
  7. ONNX+TensorRT
  8. MobileNetV2-YoloV3
  9. layui 键盘选中行
  10. 车辆检测,车牌识别WPOD-NET OCR-Net