欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

BOA+PHP+SQLite之SQLite

程序员文章站 2024-01-27 13:47:04
...

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 SQLite 1第一种办法pc机上要安装交叉编译环境(我安装的是arm-linux-gcc 3.4.1) 把sqlite-3.5.6.tar.gz解压#tar -vzxf sqlite-3.5.6.tar.gz进入sqlite-3.5.6目录#cd sqlite-3.5.6创建sqlite-arm目

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  SQLite 第一种办法pc机上要安装交叉编译环境(我安装的是arm-linux-gcc 3.4.1)

  把sqlite-3.5.6.tar.gz解压#tar -vzxf sqlite-3.5.6.tar.gz进入sqlite-3.5.6目录#cd sqlite-3.5.6创建sqlite-arm目录,并进入该目录#mkdir sqlite-3.5.6 #cd sqlite-arm

  接着输入以下命令:#……/configure ――prefix=/home/tong/sqlite-3.5.6/sqlite-arm ――disable-tcl ――host=arm-linux configure:是软件的组态设置文件,产生对应平台的Makefile文件,――prefix:表示产生的文件的存放目录

  接着进行编译并进行安装#make \\根据Makefile的内容 编译出符合平台的可执行文件#make install \\安装编译成功的软件

  执行完以上命令就会在/home/tong/sqlite-3.5.6/sqlite-arm/目录下产生:bin,include,lib等

  可以分别使用如下命令把动态库文件的调试信息给剥离,减少文件所占有的空间#arm-linux-strip libsqlite3.so.0.8.6 #arm-linux-strip sqlite3

  把bin目录下的sqlite3文件和lib目录下所有的文件都复制到新创建的目录sqlite,然后把sqlite整个文件夹烧到板上(我的存放的位置是/mnt/yaffs/,由于lib目录的libsqlite3.so和libsqlte3.so.0是libsqlite3.so.0.8.6的软连接文件,所以复制不了,可以先去不管它)

  设置环境变量[/mnt/yaffs/sqlite]export LD_LIBRARY_PATH=/mnt/yaffs/sqlite/:$LD_LIBRARY_PATH [/mnt/yaffs/sqlite]export PATH=/mnt/yaffs/sqlite/:$PATH

  接下来建立软连接[/mnt/yaffs/sqlite]ln -s libsqlite3.so.0.8.6 libsqlite3.so.0 [/mnt/yaffs/sqlite]ln -s libsqlite3.so.0.8.6 libsqlite3.so

  这样,移植就算完成了[/mnt/yaffs/sqlite]sqlite3 test.db出现如下内容,表示成功SQLite version 3.5.6 Enter ".help" for instructions sqlite>在>后输入一个; test.db方可创建成功接着,编写一个连接sqlite数据库的程序,在2410上运行

  view plainprint?

  #include #include //数据库头文件

  int main( void )

  { sqlite3 *db=NULL;int rc;rc = sqlite3_open("test.db", &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件if( rc ){ fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));sqlite3_close(db);exit(1);} else printf("open test.db successfully!\n");

  sqlite3_close(db); //关闭数据库return 0;}

  #include #include //数据库头文件 int main( void ) { sqlite3 *db=NULL; int rc; rc = sqlite3_open("test.db", &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件 if( rc ){ fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); sqlite3_close(db); exit(1); } else printf("open test.db successfully!\n"); sqlite3_close(db); //关闭数据库 return 0; }

  编译程序:tong@tong-desktop:~/exp$arm-linux-gcc -L /sqlite-3.3.8 -I /sqlite-3.3.8 -o test1 test1.c -lsqlite3

  -lsqlite3 -L/home/tong/sqlite-3.5.6/sqlite-arm/lib:表示在/home/tong/sqlite-3.5.6/sqlite-arm/lib目录中寻找sqlite3的库文件

  -I/home/tong/sqlite-3.5.6/sqlite-arm/include:表示在/home/tong/sqlite-3.5.6/sqlite-arm/include目录中寻找头文件

  查看产生的文件的属性:tong@tong-desktop:~/exp$ file sqlite_connect sqlite_connect: ELF 32-bit LSB executable, arm, version 1, dynamically linked (uses shared libs), for GNU/Linux 2.4.3, not stripped

  把sqlite_connect文件烧到板上,运行:[/mnt/yaffs/test]./sqlite_connect open test.db successfully!

  成功!!!

  第二种办法在arm-Linux平台上移植SQLite

  (陈云川 200620603001 ybc2084@163.com 四川成都)

  摘要:本文首先对嵌入式数据库SQLite做了简单的介绍,对移植所采用的软硬件平台作了简单的说明。然后以SQLite3为蓝本对移植过程中的细节作了详细的说明,并对移植后的SQLite3数据库进行了测试。测试结果表明,本文所采取的移植方式是有效的。

  关键字:arm-Linux、嵌入式、SQLite

  Port SQLite to arm-Linux Platform(Yun Chuan Chen, 200620603001, ybc2084@163.com, Chengdu Sichuan)

  Abstract: This paper first give a brief introduction to SQLite database and the hardware and software platform to port. Then demonstrate SQLite3‘s porting process to ARM-Linux in detail and test the ported SQLite3. The testing result states that the porting method this paper proposed is effective. Keywords: arm-Linux、embedded、SQLite

  1、引言本文将简要介绍如何在arm-Linux平台上移植SQLite嵌入式数据库。SQLite是一个采用C语言开发的嵌入式数据库引擎。SQLite的最新版本是3.3.8,在不至于引起混淆的情况下,本文也将其简称为SQLite3.数 据库的目标是 实现对数据的存储、检索等功能。传统的数据库产品除提供了基本的查询、添加、删除等功能外,也提供了很多高级特性,如触发器、存储过程、数据备份恢复等。 但实际上用到这些高级功能的时候并不多,应用中频繁用到的还是数据库的基本功能。于是,在一些特殊的应用场合,传统的数据库就显得过于臃肿了。在这种情况 下,嵌入式数据库开始崭露头角。嵌入式数据库是一种具备了基本数据库特性的数据文件,它与传统数据库的区别是:嵌入式数据库采用程序方式直接驱动,而传统 数据库则采用引擎响应方式驱动。嵌入式数据库的体积通常都很小,这使得嵌入式数据库常常应用在移动设备上。由于性能卓越,所以在高性能的应用上也经常见到 嵌入式数据库的身影。

  SQLite是一种嵌入式数据库。SQLite的目标是尽量简单,因此它抛弃了传统企业级数据库的种种复杂特性,只实现那 些对于数据库而言非常必要的功能。尽管简单性是SQLite追求的首要目标,但是其功能和性能都非常出色。它具有这样一些特点[1]: 支持ACID事务(ACID是Atomic、Consistent、Isolated、Durable的缩写);零配置,不需要任何管理性的配置过程;实 现了大部分SQL92标准;所有数据存放在一个单独的文件之中,支持的文件大小最高可达2TB;数据库可以在不同字节序的机器之间共享;体积小,在去掉可 选功能的情况下,代码体积小于150KB,即使加入所有可选功能,代码大小也不超过250KB;系统开销小,检索效率高,执行常规数据库操作时速度比客户 /服务器类型的数据库快;简单易用的API接口;可以和Tcl、Python、C/C++、Java、Ruby、Lua、Perl、PHP等多种语言绑 定;自包含,不依赖于外部支持;良好注释的代码;代码测试覆盖率达95%以上;开放源码,可以用于任何合法用途。由于这样一些杰出的优点,SQLite获 得了由Google与O‘Reilly举办的2005 Open Source Award!

  由于SQLite具有功能强大、接口简单、速度快、占用空间小这样一些特殊的优点,因此特别适合于应用在嵌入式环境中。SQLite在手机、PDA、机顶盒等设备上已获得了广泛应用。本文将说明如何在arm-Linux内核的基础上移植SQLite3. 2、软硬件平台本 文中采用的硬件平台为Sitsang嵌入式评估板。Sitsang评估板的核心是PXA255嵌入式处理器,PXA255是一款基于Intel XScale微架构的高性能、低功耗嵌入式处理器。Sitsang评估板上配备了Flash存储器、LCD、触摸屏、USB接口、以太网接口、全功能串口 (FFUART)、蓝牙串口(BTUART)、音频接口等诸多硬件资源。

  底层软件系统是以ARM-Linux内核为基础的。Sitsang评估板使用的arm-Linux是在linux-2.4.19内核上打了patch-2.4.19-sitsang2补丁后编译而成。

[1] [2]

BOA+PHP+SQLite之SQLite