Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++ sqlite3

作者:狂神战天   发布日期:2026-07-02   浏览:81

#include <iostream>
#include <sqlite3.h>

// 回调函数,用于处理查询结果
static int callback(void* data, int argc, char** argv, char** azColName) {
    for (int i = 0; i < argc; i++) {
        std::cout << azColName[i] << ": " << (argv[i] ? argv[i] : "NULL") << std::endl;
    }
    std::cout << std::endl;
    return 0;
}

int main() {
    sqlite3* DB;
    char* errorMessage;

    // 打开或创建数据库文件
    int exit = sqlite3_open("example.db", &DB);

    if (exit) {
        std::cerr << "Error open DB " << sqlite3_errmsg(DB) << std::endl;
        return -1;
    }

    std::string sql = "CREATE TABLE IF NOT EXISTS TEST("
                      "ID INT PRIMARY KEY NOT NULL,"
                      "NAME TEXT NOT NULL,"
                      "AGE INT NOT NULL);";

    // 执行 SQL 语句
    exit = sqlite3_exec(DB, sql.c_str(), nullptr, nullptr, &errorMessage);

    if (exit != SQLITE_OK) {
        std::cerr << "SQL error: " << errorMessage << std::endl;
        sqlite3_free(errorMessage);
    } else {
        std::cout << "Table created successfully" << std::endl;
    }

    // 插入数据
    sql = "INSERT INTO TEST (ID, NAME, AGE) VALUES (1, 'Alice', 30);"
          "INSERT INTO TEST (ID, NAME, AGE) VALUES (2, 'Bob', 25);"
          "INSERT INTO TEST (ID, NAME, AGE) VALUES (3, 'Charlie', 35);";

    exit = sqlite3_exec(DB, sql.c_str(), nullptr, nullptr, &errorMessage);

    if (exit != SQLITE_OK) {
        std::cerr << "SQL error: " << errorMessage << std::endl;
        sqlite3_free(errorMessage);
    } else {
        std::cout << "Records created successfully" << std::endl;
    }

    // 查询数据
    sql = "SELECT * FROM TEST;";
    exit = sqlite3_exec(DB, sql.c_str(), callback, nullptr, &errorMessage);

    if (exit != SQLITE_OK) {
        std::cerr << "SQL error: " << errorMessage << std::endl;
        sqlite3_free(errorMessage);
    } else {
        std::cout << "Operation done successfully" << std::endl;
    }

    // 关闭数据库连接
    sqlite3_close(DB);
    return 0;
}

解释说明:

  1. 包含头文件#include <sqlite3.h> 用于引入 SQLite3 的库。
  2. 回调函数callback 函数用于处理查询结果,遍历每一列并输出其值。
  3. 打开数据库sqlite3_open 函数用于打开或创建一个数据库文件。如果文件不存在,则会创建一个新的数据库文件。
  4. 执行 SQL 语句sqlite3_exec 函数用于执行 SQL 语句,包括创建表、插入数据和查询数据。
  5. 错误处理:通过检查 sqlite3_exec 的返回值来处理可能的错误,并使用 sqlite3_errmsg 获取详细的错误信息。
  6. 关闭数据库sqlite3_close 函数用于关闭数据库连接。

这个示例展示了如何使用 C++ 和 SQLite3 进行基本的数据库操作,包括创建表、插入数据和查询数据。

上一篇:c++多态性是指

下一篇:c++ 遍历文件夹

大家都在看

c++闭包

c++向上取整的代码

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++怎么输入字符串

c++字符串切片

c++ functional

c++框架代码

c++格式化字符串

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站