如何用C语言操作sqlite3,一文搞懂
系统运维 2025-10-06 18:02:56
0
sqlite3编程接口非常多,一文搞懂对于初学者来说,何用我们暂时只需要掌握常用的语言操几个函数,其他函数自然就知道如何使用了。一文搞懂
数据库
本篇假设数据库为my.db,何用有数据表student。
no name score 4 一口Linux 89.0创建表格语句如下:
CREATE TABLE IF NOT EXISTS student (no integer primary key,语言操 name text, score real);常用函数
sqlite3_open
int sqlite3_open(char *path, sqlite3 **db);功能:
打开sqlite数据库
参数:
path: 数据库文件路径
db: 指向sqlite句柄的服务器租用指针,后面对数据库所有的一文搞懂操作都要依赖这个句柄
返回值:
成功返回0,失败返回错误码(非零值)
sqlite3_close
int sqlite3_close(sqlite3 *db);功能:
关闭sqlite数据库
返回值:
成功返回0,何用失败返回错误码
const char *sqlite3_errmsg(sqlite3 *db);功能:
打印错误信息
返回值:
返回错误信息
不使用回调函数执行SQL语句
sqlite3_get_table
int sqlite3_get_table(sqlite3 *db,语言操 const char *sql, char ***resultp, int*nrow, int *ncolumn, char功能:
执行SQL操作
参数:
db:数据库句柄
sql:SQL语句
resultp:用来指向sql执行结果的指针
nrow:满足条件的香港云服务器记录的数目
ncolumn:每条记录包含的字段数目
errmsg:错误信息指针的地址
返回值:
成功返回0,失败返回错误码
举例
下面比如我们要显示student表中所有的一文搞懂数据信息,服务器托管我们就可以利用sqlite3_get_table()执行语句:
select * from student实现代码如下:
void do_show_sample(sqlite3 *db) { char **result,何用 *errmsg; int nrow, ncolumn, i, j, index; if (sqlite3_get_table(db, "select * from student", &result, &nrow, &ncolumn, &errmsg) != 0) { printf("error : %s\n", errmsg); sqlite3_free(errmsg); } index = ncolumn; for (i=0; i<nrow; i++) { for (j=0; j<ncolumn; j++) { printf("%-8s : %-8s\n", result[j], result[index]); index++; } printf("