PHP+sqlite数据库操作示例(创建/打开/插入/检索)


Posted in PHP onMay 26, 2016

本文实例讲述了PHP+sqlite数据库操作的方法。分享给大家供大家参考,具体如下:

SQLite是一款轻型的数据库,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非 常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相 结合,比如Tcl、PHP、Java等,还有ODBC接口,同样比起MySQL、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理 速度比他们都快。

PHP 5开始不再默认支持Mysql,而是默认支持SQLite,可见它的影响力多么大,所以如果你想做SQLite的PHP开发,建议你使用PHP 5.0.0以上版本。

下面是使用sqlite的一个示例

首先可以在目录下新建一个upload.db的空文件

<?php
define("LN", __LINE__);//行号
define("FL", __FILE__);//当前文件
define("DEBUG", 0);//调试开关
$db_name = "upload.db";
//创建数据库文件,文件内容为空
if (!file_exists($db_name)) {
 if (!($fp = fopen($db_name, "w+"))) {
 exit(error_code(-1, LN));
 }
 fclose($fp);
}
//打开数据库文件
if (!($db = sqlite_open($db_name))) {
 exit(error_code(-2, LN));
}
//产生数据表结构
if (!sqlite_query($db, "DROP TABLE uploads")) {
 exit(error_code(-3, LN));
}
if (!sqlite_query($db, "CREATE TABLE uploads (id integer primary key, file_name varchar(200) UNIQUE, make_time integer)")) {
 exit(error_code(-3, LN));
}
//插入一条数据
if (!sqlite_query($db, " INSERT INTO uploads (file_name, make_time) VALUES ('upload/111.data','".time()."') ")) {
 exit(error_code(-4, LN));
}
//把数据检索出来
if (!($result = sqlite_query($db, "SELECT * FROM uploads"))) {
 exit(error_code(-5, LN));
}
//获取检索数据并显示
while ($array = sqlite_fetch_array($result)) {
 echo "ID: ". $array[file_name] ."<br>: ". $array[make_time] ;
}
/* 错误信息代码函数 */
function error_code($code, $line_num, $debug=DEBUG)
{
 if ($code<-6 || $code>-1) {
 return false;
 }
 switch($code) {
 case -1: $errmsg = "Create database file error.";
  break;
 case -2: $errmsg = "Open sqlite database file failed.";
  break;
 case -3: $errmsg = "Create table failed, table already exist.";
  break;
 case -4: $errmsg = "Insert data failed.";
  break;
 case -5: $errmsg = "Query database data failed.";
  break;
 case -6: $errmsg = "Fetch data failed.";
  break;
 case -7: $errmsg = "";
  break;
 default: $errmsg = "Unknown error.";
 }
 $m = "<b>[ Error ]</b><br>File: ". basename(FL) ." <br>Line: ". LN ."<br>Mesg: ". $errmsg ."";
 if (!$debug) {
 ($m = $errmsg);
 }
 return $m;
}
?>

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

PHP 相关文章推荐
用php实现让页面只能被百度gogole蜘蛛访问的方法
Dec 29 PHP
注意:php5.4删除了session_unregister函数
Aug 05 PHP
php中如何使对象可以像数组一样进行foreach循环
Aug 09 PHP
浅谈discuz密码加密的方式
May 22 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
Nov 28 PHP
使用PHP生成PDF方法详解
Jan 23 PHP
windows下安装php的memcache模块的方法
Apr 07 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
Sep 20 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
thinkPHP3.1验证码的简单实现方法
Apr 22 PHP
ThinkPHP中create()方法自动验证表单信息
Apr 28 PHP
PDO::setAttribute讲解
Jan 29 PHP
php连接oracle数据库的核心步骤
May 26 #PHP
php连接oracle数据库的方法(测试成功)
May 26 #PHP
PHP封装的MSSql操作类完整实例
May 26 #PHP
PHP简单操作MongoDB的方法(安装及增删改查)
May 26 #PHP
基于PHP实现数据分页显示功能
May 26 #PHP
yii2实现根据时间搜索的方法
May 25 #PHP
Yii2框架使用计划任务的方法
May 25 #PHP
You might like
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
JavaScript中各种编码解码函数的区别和注意事项
2010/08/19 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
2016/09/23 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
2016/12/08 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
javascript 封装Date日期类实例详解
2017/05/28 Javascript
详解如何用babel转换es6的class语法
2018/04/03 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
解决在vue项目中webpack打包后字体不生效的问题
2018/09/01 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
Vue登录主页动态背景短视频制作
2019/09/21 Javascript
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
python通过openpyxl生成Excel文件的方法
2015/05/12 Python
在Django的模板中使用认证数据的方法
2015/07/23 Python
python中os和sys模块的区别与常用方法总结
2017/11/14 Python
解决pycharm 误删掉项目文件的处理方法
2018/10/22 Python
Python文件循环写入行时防止覆盖的解决方法
2018/11/09 Python
python交互界面的退出方法
2019/02/16 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
python+gdal+遥感图像拼接(mosaic)的实例
2020/03/10 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
localStorage、sessionStorage使用总结
2017/11/17 HTML / CSS
学习新党章思想汇报
2014/01/09 职场文书
学校募捐倡议书
2014/05/14 职场文书
幼儿园社区活动总结
2014/07/07 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
党员理论学习心得体会
2016/01/21 职场文书
golang interface判断为空nil的实现代码
2021/04/24 Golang
Javascript设计模式之原型模式详细
2021/10/05 Javascript
浅谈Redis跟MySQL的双写问题解决方案
2022/02/24 Redis
Mybatis-Plus 使用 @TableField 自动填充日期
2022/04/26 Java/Android
JAVA 线程池(池化技术)的实现原理
2022/04/28 Java/Android