sqlite3 添加数据
时间: 2024-04-02 08:29:23 浏览: 19
在SQLite3中添加数据可以通过执行SQL语句来实现。以下是添加数据的步骤:
1. 打开数据库连接:首先需要使用SQLite3提供的API函数打开一个数据库连接。可以使用`sqlite3_open()`函数来打开一个数据库文件,如果文件不存在则会创建一个新的数据库文件。
2. 准备SQL语句:使用`sqlite3_prepare_v2()`函数准备一个SQL语句,该语句用于插入数据。SQL语句的格式为`INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...)`,其中`table_name`是要插入数据的表名,`(column1, column2, ...)`是要插入数据的列名,`(value1, value2, ...)`是要插入的具体数值。
3. 绑定参数:如果SQL语句中有占位符(例如`?`),需要使用`sqlite3_bind_*()`函数将具体数值绑定到占位符上。可以使用`sqlite3_bind_*()`系列函数来绑定不同类型的参数。
4. 执行SQL语句:使用`sqlite3_step()`函数执行SQL语句,将数据插入到数据库中。
5. 关闭数据库连接:使用`sqlite3_close()`函数关闭数据库连接,释放资源。
下面是一个示例代码,演示如何向SQLite3数据库中的表中添加数据:
```c
#include <stdio.h>
#include <sqlite3.h>
int main() {
sqlite3 *db;
char *errMsg = 0;
// 打开数据库连接
int rc = sqlite3_open("test.db", &db);
if (rc) {
fprintf(stderr, "无法打开数据库: %s\n", sqlite3_errmsg(db));
return 0;
}
// 准备SQL语句
const char *sql = "INSERT INTO students (name, age) VALUES (?, ?)";
sqlite3_stmt *stmt;
rc = sqlite3_prepare_v2(db, sql, -1, &stmt, 0);
if (rc != SQLITE_OK) {
fprintf(stderr, "无法准备SQL语句: %s\n", sqlite3_errmsg(db));
return 0;
}
// 绑定参数
const char *name = "John";
int age = 20;
sqlite3_bind_text(stmt, 1, name, -1, SQLITE_STATIC);
sqlite3_bind_int(stmt, 2, age);
// 执行SQL语句
rc = sqlite3_step(stmt);
if (rc != SQLITE_DONE) {
fprintf(stderr, "无法执行SQL语句: %s\n", sqlite3_errmsg(db));
return 0;
}
// 关闭数据库连接
sqlite3_finalize(stmt);
sqlite3_close(db);
printf("数据插入成功!\n");
return 0;
}
```