C++:: 如何使用 sqlite3 insertquery 连接变量

C++:: How to concatenate variables using sqlite3 insertquery

本文关键字:连接 变量 insertquery 何使用 C++ sqlite3      更新时间:2023-10-16

在这里,我试图通过插入查询连接变量(int 和 char), 但是我收到错误,我的错误是错误:类型为"const char*"的操作数无效,并且 "常量字符 [2]"到二进制"运算符+" 伙计们请引导我错在哪里..

     **string insertQuery= "insert into items   (user_id,session_id,user_sessionname,buffer)values("
                        + user + "," + session + ",'" + usrname +   "','" + buff + "')";
         sqlite3_stmt *insertStmt;
                   cout << "Creating Insert Statement" << endl;
                   sqlite3_prepare(db, insertQuery.c_str(), insertQuery.size(), &insertStmt, NULL);
                   cout << "Stepping Insert Statement" << endl;
                   if (sqlite3_step(insertStmt) != SQLITE_DONE) cout << "Didn't Insert Item!" << endl;**

(假设空终止char*或空终止char[]

建议使用 std::ostringstream#include <sstream> ) 来构造 SQL 查询:

std::ostringstream s;
s << "insert into items "
  << user
  << ','
  << session;
const std::string insertQuery(s.str());

也可以通过在串联序列中创建临时std::string对象:

const std::string insertQuery= 
    std::string("insert into items ... values(")
  + std::string(user)
  + std::string(","); // etc

如果 char*char[] 未终止 null,则可以通知std::string构造函数它有多长:

std::string s(buf, 2);