c++ sqlite3 插入数据
时间: 2024-08-17 10:03:11 浏览: 108
在 C++ 中使用 SQLite3 插入数据通常需要以下几个步骤:
1. **连接数据库**:
首先,你需要包含 SQLite 的头文件,并通过 `sqlite3_open_v2` 函数打开数据库。例如:
```cpp
sqlite3* db;
int rc = sqlite3_open("example.db", &db);
if (rc) {
// 处理错误
}
```
2. **创建或选择表**:
确保你要插入数据的表已经存在。如果不存在,可以使用 SQL 创建命令创建它。比如创建一个简单的用户表:
```cpp
const char* create_table_sql = "CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, email TEXT);";
if (sqlite3_exec(db, create_table_sql, nullptr, nullptr, nullptr) != SQLITE_OK) {
// 处理错误
}
```
3. **准备 SQL 语句**:
使用 `sqlite3_prepare_v2` 准备插入数据的 SQL 语句。这里是一个插入示例:
```cpp
const char* insert_sql = "INSERT INTO users (name, email) VALUES (?, ?)";
sqlite3_stmt* stmt;
rc = sqlite3_prepare_v2(db, insert_sql, -1, &stmt, nullptr);
if (rc != SQLITE_OK) {
// 处理错误
}
```
4. **绑定参数**:
对于每个要插入的数据项,你可以使用 `sqlite3_bind_text` 或者其他适当的函数绑定到 SQL 语句中对应的占位符。例如,插入字符串和整数:
```cpp
std::string name = "John Doe";
std::string email = "john.doe@example.com";
sqlite3_bind_text(stmt, 1, name.c_str(), -1, SQLITE_TRANSIENT);
sqlite3_bind_text(stmt, 2, email.c_str(), -1, SQLITE_TRANSIENT);
```
5. **执行 SQL**:
调用 `sqlite3_step` 执行 SQL 语句。如果成功,`SQLITE_DONE` 表示操作完成;如果有错误,处理错误。
```cpp
while (sqlite3_step(stmt) == SQLITE_ROW) {
// 操作已完成,无需做任何事情
}
if (sqlite3_step(stmt) != SQLITE_DONE) {
// 处理错误
}
```
6. **清理资源**:
最后,记得释放资源:
```cpp
sqlite3_finalize(stmt);
sqlite3_close(db);
```
阅读全文