linux c 连接sqlite 数据库
在Linux上使用C语言连接SQLite数据库,可以按照以下步骤进行:
- 安装SQLite库:首先需要在Linux系统上安装SQLite库。可以使用以下命令安装SQLite库:
sudo apt-get install libsqlite3-dev
-
创建一个C文件:在Linux系统上创建一个C文件,例如
main.c。 -
引入SQLite头文件:在C文件中引入SQLite的头文件:
#include <stdio.h>
#include <sqlite3.h>
- 定义回调函数:定义一个回调函数来处理查询结果。回调函数的声明如下:
int callback(void *NotUsed, int argc, char **argv, char **azColName);
在回调函数中,可以根据需要处理查询结果。
- 连接数据库:在C文件中编写连接数据库的代码。可以使用
sqlite3_open()函数来打开一个数据库连接:
sqlite3 *db;
int rc = sqlite3_open("test.db", &db);
if (rc != SQLITE_OK) {
fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(db));
return 1;
}
这里的test.db是要连接的SQLite数据库文件名。
- 执行SQL语句:编写SQL语句,并使用
sqlite3_exec()函数执行SQL语句:
char *sql = "SELECT * FROM table_name";
rc = sqlite3_exec(db, sql, callback, 0, &errMsg);
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", errMsg);
sqlite3_free(errMsg);
}
这里的table_name是要查询的表名,callback是之前定义的回调函数。
- 关闭数据库连接:使用
sqlite3_close()函数关闭数据库连接:
sqlite3_close(db);
完整的示例代码如下:
#include <stdio.h>
#include <sqlite3.h>
int callback(void *NotUsed, int argc, char **argv, char **azColName) {
for (int i = 0; i < argc; i++) {
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}
int main() {
sqlite3 *db;
char *errMsg = 0;
int rc;
rc = sqlite3_open("test.db", &db);
if (rc != SQLITE_OK) {
fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(db));
return 1;
}
char *sql = "SELECT * FROM table_name";
rc = sqlite3_exec(db, sql, callback, 0, &errMsg);
if (rc != SQLITE_OK) {
fprintf(stderr, "SQL error: %s\n", errMsg);
sqlite3_free(errMsg);
}
sqlite3_close(db);
return 0;
}
在上述代码中,需要将test.db替换为实际的SQLite数据库文件名,table_name替换为实际的表名
原文地址: https://www.cveoy.top/t/topic/iEwx 著作权归作者所有。请勿转载和采集!