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

c++ sqlite

作者:/神經病/   发布日期:2025-12-26   浏览:33

#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* messageError;

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

    if (exit) {
        std::cerr << "Error open DB " << sqlite3_errmsg(DB) << std::endl;
        return -1;
    } else {
        std::cout << "Opened Database Successfully!" << std::endl;
    }

    // 创建表
    std::string sql = "CREATE TABLE IF NOT EXISTS RECORDS("
                      "ID INT PRIMARY KEY NOT NULL,"
                      "NAME TEXT NOT NULL,"
                      "AGE INT NOT NULL);";

    exit = sqlite3_exec(DB, sql.c_str(), nullptr, nullptr, &messageError);
    if (exit != SQLITE_OK) {
        std::cerr << "Error Create Table" << std::endl;
        sqlite3_free(messageError);
    } else {
        std::cout << "Table created Successfully" << std::endl;
    }

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

    exit = sqlite3_exec(DB, sql.c_str(), nullptr, nullptr, &messageError);
    if (exit != SQLITE_OK) {
        std::cerr << "Error Insert" << std::endl;
        sqlite3_free(messageError);
    } else {
        std::cout << "Records created Successfully" << std::endl;
    }

    // 查询数据
    sql = "SELECT * FROM RECORDS;";
    exit = sqlite3_exec(DB, sql.c_str(), callback, nullptr, &messageError);
    if (exit != SQLITE_OK) {
        std::cerr << "Error Select" << std::endl;
        sqlite3_free(messageError);
    }

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

解释说明:

  1. 包含头文件#include <sqlite3.h> 引入了 SQLite 的库。
  2. 回调函数callback 函数用于处理查询结果,并将每一行的结果打印到控制台。
  3. 打开数据库sqlite3_open 函数用于打开或创建一个数据库文件。如果成功,返回的 sqlite3* 指针将用于后续操作。
  4. 创建表:使用 SQL 语句创建一个名为 RECORDS 的表,包含 IDNAMEAGE 三个字段。
  5. 插入数据:通过 SQL 语句向表中插入三条记录。
  6. 查询数据:使用 sqlite3_exec 函数执行查询,并通过回调函数处理查询结果。
  7. 关闭数据库:最后,使用 sqlite3_close 函数关闭数据库连接。

这段代码展示了如何在 C++ 中使用 SQLite 进行基本的数据库操作。

上一篇:c++恶搞代码

下一篇:c++ std::move

大家都在看

c++闭包

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

c++ 注释

c++如何判断素数

c++格式化字符串

c++ orm框架

c++ random函数用法

队列c++

c++freopen怎么用

c++virtual

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

Laravel 中文站