溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C++中tostring函數(shù)與數(shù)據(jù)庫交互

發(fā)布時間:2024-09-08 09:09:45 來源:億速云 閱讀:81 作者:小樊 欄目:編程語言

在C++中,std::to_string()是一個標(biāo)準(zhǔn)庫函數(shù),用于將數(shù)字類型(如int、float、double等)轉(zhuǎn)換為字符串。當(dāng)你需要將數(shù)字存儲到數(shù)據(jù)庫或者需要與數(shù)據(jù)庫進(jìn)行交互時,這個函數(shù)會非常有用。

以下是一個簡單的示例,展示了如何使用std::to_string()函數(shù)與SQLite數(shù)據(jù)庫進(jìn)行交互:

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

int main() {
    sqlite3* db;
    char* errorMessage = nullptr;
    int exitcode = sqlite3_open("test.db", &db);

    if (exitcode) {
        std::cerr << "Can't open database: "<< sqlite3_errmsg(db)<< std::endl;
        return exitcode;
    } else {
        std::cout << "Opened database successfully!"<< std::endl;
    }

    std::string sql = "CREATE TABLE IF NOT EXISTS USERS("
                      "ID INTEGER PRIMARY KEY AUTOINCREMENT,"
                      "NAME           TEXT    NOT NULL,"
                      "AGE            INT     NOT NULL,"
                      "SALARY         REAL);";

    exitcode = sqlite3_exec(db, sql.c_str(), nullptr, nullptr, &errorMessage);

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

    int id = 1;
    std::string name = "John Doe";
    int age = 30;
    double salary = 60000.50;

    std::string insert_sql = "INSERT INTO USERS (ID, NAME, AGE, SALARY) VALUES (" +
                             std::to_string(id) + ", '" + name + "', " +
                             std::to_string(age) + ", " +
                             std::to_string(salary) + ");";

    exitcode = sqlite3_exec(db, insert_sql.c_str(), nullptr, nullptr, &errorMessage);

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

    sqlite3_close(db);

    return 0;
}

在這個示例中,我們首先創(chuàng)建了一個SQLite數(shù)據(jù)庫連接,并創(chuàng)建了一個名為USERS的表。然后,我們使用std::to_string()函數(shù)將整數(shù)和浮點數(shù)轉(zhuǎn)換為字符串,以便將它們插入到數(shù)據(jù)庫中。最后,我們關(guān)閉了數(shù)據(jù)庫連接。

請注意,這個示例僅用于演示目的。在實際項目中,你可能需要考慮使用預(yù)編譯的SQL語句和參數(shù)綁定來防止SQL注入攻擊。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI