您好,登錄后才能下訂單哦!
在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注入攻擊。
免責(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)容。