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

linux c++ sqlite

作者:白话少年的痴情梦—   发布日期:2025-02-21   浏览:108

#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;
    int exit = 0;

    // 打开或创建数据库文件
    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 PERSON("
                      "ID INT PRIMARY KEY     NOT NULL,"
                      "NAME           TEXT    NOT NULL,"
                      "AGE            INT     NOT NULL);";

    // 执行 SQL 语句
    char* errorMessage;
    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 PERSON (ID, NAME, AGE) VALUES (1, 'Alice', 30);"
          "INSERT INTO PERSON (ID, NAME, AGE) VALUES (2, 'Bob', 25);";

    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 PERSON;";
    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 << "Query executed successfully" << std::endl;
    }

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

    return 0;
}

解释说明:

  1. 包含头文件#include <sqlite3.h> 引入 SQLite 的 C++ 接口。
  2. 回调函数:定义一个回调函数 callback 来处理查询结果。每个查询结果行都会调用这个函数。
  3. 打开数据库:使用 sqlite3_open 函数打开或创建一个名为 example.db 的数据库文件。
  4. 创建表:使用 SQL 语句创建一个名为 PERSON 的表,包含 IDNAMEAGE 三个字段。
  5. 插入数据:通过 SQL 语句向 PERSON 表中插入两条记录。
  6. 查询数据:使用 SQL 语句查询 PERSON 表中的所有记录,并通过回调函数输出结果。
  7. 关闭数据库:最后使用 sqlite3_close 函数关闭数据库连接。

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

上一篇:linux 查看线程数

下一篇:linux nfs配置

大家都在看

linux长ping命令

linux关机命令行

linux重启oracle命令

linux搭建sftp

linux 追踪路由

linux配置静态路由,并永久生效

linux查看后台

linux添加用户到指定组

shutdown linux

linux gzip解压

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

Laravel 中文站