Linux下数据库sqlite3

最近在Linux下用到数据库sqlite3,于是开始了该方面的学习。 

0. 引言 

我们这篇文章主要讲述了如何在C/C++语言中调用 sqlite 的函数接口来实现对数据库的管理, 
包括创建数据库、创建表格、插入数据、查询数据、删除数据等。 

1. 说明 

这里我们假设你已经编译好了sqlite的库文件 : 
libsqlite3.a libsqlite3.la libsqlite3.so libsqlite3.so.0 libsqlite3.so.0.8.6 pkgconfig 
和可执行文件 : sqlite3 

我们再假设你的sqlite3的安装目录在 /usr/local/sqlite3 目录下。 
如果不是,我们可以这样做,将你的安装文件复制到 /usr/local/sqlite3 这个目录, 
这样我们好在下面的操作中更加统一,从而减少出错的概率 

例如:[root@localhost home]# cp -rf sqlite-3.3.8-ix86/ /usr/local/sqlite3 
这里假设 /home/sqlite-3.3.8-ix86/ 是你的安装目录,也就是说你的sqlite原来就是安装在这里 

这样之后,我们的sqlite3的库文件目录是:/usr/local/sqlite3/lib 
可执行文件 sqlite3 的目录是: /usr/local/sqlite3/bin 
头文件 sqlite3.h 的目录是: /usr/local/sqlite3/include 

现在开始我们的Linux下sqlite3编程之旅。 

2. 开始 

这里我们现在进行一个测试。 
现在我们来写个C/C++程序,调用 sqlite 的 API 接口函数。 

下面是一个C程序的例子,显示怎么使用 sqlite 的 C/C++ 接口. 数据库的名字由第一个参数取得且第二个参数或更多的参数是 SQL 执行语句. 这个函数调用sqlite3_open() 在 16 行打开数据库,并且sqlite3_close() 在 25 行关闭数据库连接。 

[root@localhost temp]# vi opendbsqlite.c 
按下 i 键切换到输入模式,输入下列代码: 


// name: opendbsqlite.c 

// This prog is used to test C/C++ API for sqlite3.It is very simple,ha! 

// Author : zieckey All rights reserved. 

// data : 2006/11/13 


#include <stdio.h> 

#include <sqlite3.h> 


int main( void ) 



sqlite3 *db=NULL; 

char *zErrMsg = 0; 

int rc; 

//打开指定的数据库文件,如果不存在将创建一个同名的数据库文件 

rc = sqlite3_open("zieckey.db", &db); 

if( rc ) 


fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db)); 

sqlite3_close(db); 

exit(1); 



else printf("You have opened a sqlite3 database named zieckey.db successfully!\nCongratulations! Have fun ! ^-^ \n"); 


sqlite3_close(db); //关闭数据库 

return 0; 




退出,保存。(代码输入完成后,按下 Esc 键,然后输入: :wq ,回车就好拉) 

好拉,现在编译:[root@localhost temp]# gcc opendbsqlite.c -o db.out 
或者遇到这样的问题: 
[root@localhost temp]# gcc opendbsqlite.c -o db.out 
opendbsqlite.c:11:21: sqlite3.h: 没有那个文件或目录 
opendbsqlite.c: In function `main': 
opendbsqlite.c:19: `sqlite3' undeclared (first use in this function) 
opendbsqlite.c:19: (Each undeclared identifier is reported only once 
opendbsqlite.c:19: for each function it appears in.) 
opendbsqlite.c:19: `db' undeclared (first use in this function) 

这是由于没有找到头文件的原因。 


也许会碰到类似这样的问题: 
[root@localhost temp]# gcc opendbsqlite.c -o db.out 

/tmp/ccTkItnN.o(.text+0x2b): In function `main': 

: undefined reference to `sqlite3_open' 

/tmp/ccTkItnN.o(.text+0x45): In function `main': 

: undefined reference to `sqlite3_errmsg' 

/tmp/ccTkItnN.o(.text+0x67): In function `main': 

: undefined reference to `sqlite3_close' 

/tmp/ccTkItnN.o(.text+0x8f): In function `main': 

: undefined reference to `sqlite3_close' 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值